ruby-on-rails – Capybara选择器匹配但不是所有过滤器,这是什么意思?

在运行水豚选择器之前,我使用save_and_open_page命令保存了以下html(我还检查了page.body,它是相同的): https://gist.github.com/davidkovaccs/8991af5bed1805277f52

我收到以下错误消息:’期望找到xpath“// div [@ class =’Box’]”9次,找到6个匹配:“Box_2001 attrkulcs1:attrvalue 1 attrkulcs2:attrvalue 2 attrkulcs3:attrvalue 3”,“Box_2002 attrkulcs1:attrvalue 1 attrkulcs2:attrvalue 2 attrkulcs3:attrvalue 3 attrkulcs4:attrvalue 4“,”Box_2003“,”Box_1001“,”Box_1002 attrkulcs1:attrvalue 1 attrkulcs2:attrvalue 2 attrkulcs3:attrvalue 3“,”Box_1003 attrkulcs1:attrvalue 1“.还找到了“”,“”,它与选择器匹配但不是所有过滤器. (水豚:: ExpectationNotMet)”

请注意,对于每次测试运行,找到的6个匹配项不是6.它是4到9之间的数字.
我真的不明白’匹配选择器但不是所有过滤器’的说法.据我所知,我没有使用任何过滤器.

我尝试了以下选择器,但所有这些选择器都给出了相同的错误消息:

have_xpath("//div[@class='Box']",:count => 9)
have_selector(:css,'.Box',:count => 9)
have_css('.Box',:count => 9)

我已经尝试过与capybara 2.2.1和2.3.0.我正在使用Selenium webdriver 2.42.0

从浏览器控制台运行$x(“// div [@ class =’Box’]”).长度完美无缺.

解决方法

我正在从github( https://github.com/jnicklas/capybara/issues/1326)复制twalpole的答案:

“你实际上使用过滤器计数和可见(认为真)没有相关的CSS,这是不可能确定的,但是三个空的引号集将倾向于表明3个.Box元素实际上不可见页”

确实这是问题,我必须在我的选择器中添加一个’visible:false’参数来搜索屏幕中看不到的元素.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...