首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >水豚选择器匹配,但不是所有过滤器,这意味着什么?

水豚选择器匹配,但不是所有过滤器,这意味着什么?
EN

Stack Overflow用户
提问于 2014-06-09 21:46:11
回答 2查看 4.8K关注 0票数 5

在运行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之间的数字。我真的不明白什么是‘匹配选择器,但不是所有过滤器’语句。我知道我没有用任何过滤器。

我尝试过以下选择器,但它们都给出了相同的错误消息:

代码语言:javascript
复制
have_xpath("//div[@class='box']", :count => 9)
have_selector(:css, '.box', :count => 9)
have_css('.box', :count => 9)

我也曾尝试过在水豚2.2.1和2.3.0中使用。我正在使用SeleniumWebDriver2.42.0

从浏览器控制台运行$x("//div@class='box'").length运行得很好。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-25 13:14:26

我正在抄袭github (https://github.com/jnicklas/capybara/issues/1326)的回答:

如果没有相关的css,您实际上使用的是筛选器计数和可见(默认为true) --这是不可能确定的,但是这三组空引号将倾向于指示页面上没有实际可见的3个.box元素

事实上,这就是问题所在,我不得不在选择器中添加一个“可见的:false”参数,以搜索屏幕上看不到的元素。

票数 9
EN

Stack Overflow用户

发布于 2014-06-10 10:14:35

“匹配选择器,但不是所有过滤器”意味着:

  • 匹配选择器:"div“
  • 与筛选器不匹配:@class='box‘

因此,您似乎总是有9个div的,但是其中有几个没有被期望的.box类所识别。

如果您手动查看原始html (所有9个div的.box类都有正确的附加),会发生什么情况?

更新:

在我的选择器和过滤器的假设中,我可能是错误的。整个块"//div[@class='box']"是选择器,可选的过滤器类似于text: 'foo'等等。

另外,我将您的html粘贴到一个项目中,并将更新后的html绑定到capybara(2.2.1),然后您的所有测试都通过了:

代码语言:javascript
复制
```javascript

expect(response.body).to have_xpath("//div@class='box'",计数=> 9)

expect(response.body).to have_selector(:css,‘..box’,:count => 9)

expect(response.body).to have_css('div.box',:count => 9)

代码语言:javascript
复制

所以我无法重现这个问题..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24129596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档