微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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’参数来搜索屏幕中看不到的元素.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐