我正在尝试编写一些RSpec来验证div
在定义的情况下是否可见,但我很难做到这一点。用水豚检查能见度
为了弄清楚如何使它工作(在真正的代码中我有一块JS添加了CSS类),我硬编码了所有东西,但仍然无法检测可见性。
代码看起来像
#CSS
.hidden {
display: none;
}
.visible {
display: block;
}
#HTML
<div id="blah" class="hidden">blah</div>
#RSpec
scenario 'blah blah' do
expect(find('#blah').visible?).to be false
end
的我得到
Failure/Error: expect(find('#blah').visible?).to be false
expected false
got true
UPDATE1:我使用的是硒的webdriver。
#rails_helper
...
require 'selenium-webdriver'
...
UPDATE2:更新HTML
我错过了什么吗? 如何检查可见性?
谢谢(礼貌第一)
感谢您的帮助。我试过了你的最新建议,但是当我运行它时,我预计会发现css“#blah”,但没有匹配。我也尝试过'Capybara.ignore_hidden_elements = false',但我得到了同样的结果。另请参阅UPDATE1。 – macsig
@macsig - 1st - 测试应用程序时不要使用ignore_hidden_elements = false,以后您会后悔的。第二 - 仅仅因为你需要selenium-webdriver并不意味着你在使用selenium驱动 - 除非你用'js:true'元数据标记了你的测试,或者设置了'Capybara.default_driver =:selenium'你'仍然使用机架测试。你可以告诉,因为在使用机架测试时浏览器不会打开运行你的测试。 - 3rd - 如果您使用的硒第一个会给出该错误,因为该元素是隐藏的,所以你必须更具体,以你试过哪个建议 –
另外一个div需要一些内容或有维度设置要考虑可见 –