Ruby 为什么这些水豚配对者会有不同的结果?不应该';它们在这里不是等价的吗?

Ruby 为什么这些水豚配对者会有不同的结果?不应该';它们在这里不是等价的吗?,ruby,rspec,capybara,Ruby,Rspec,Capybara,我一直在试图找出我的匹配者不匹配的原因,这导致我进行以下两项测试: subject.has_field?("filter").should be_true subject.has_xpath?(".//input[contains(@id, 'filter')]").should be_true 第二次测试结果是成功的,但第一次失败。但是has_字段的定义似乎表明,在第二个字段通过的任何情况下,第一个字段也应该通过。我错过了什么 下面是HTML元素: <input id="filter_

我一直在试图找出我的匹配者不匹配的原因,这导致我进行以下两项测试:

subject.has_field?("filter").should be_true
subject.has_xpath?(".//input[contains(@id, 'filter')]").should be_true
第二次测试结果是成功的,但第一次失败。但是has_字段的定义似乎表明,在第二个字段通过的任何情况下,第一个字段也应该通过。我错过了什么

下面是HTML元素:

<input id="filter_1" type="checkbox" name="type[ids][]">

只是猜测:
有_字段?
应该只匹配“可键入”字段(和复选框)-它过滤掉带有
type=image
type=submit
type=hidden
的输入。这可能是你的问题的原因吗


另外,
有_字段?
检查等价性,至少在id方面,这样它就不会与id中的尾随字符相匹配。

至少尝试得不错-虽然它没有解决我的问题,但我没有意识到它过滤掉了某些类型,所以这可能会帮助我解决另一个问题。我还将html包含在问题中,以防其中的其他内容可能相关+1,尽管如此。@GlyphGryph,