我想做这样的事情:
within '.Collection .Thing:first-child' do
page.must_have_content 'lorem ipsum'
end
.Thing
只是Collection中许多其他内容之一。我尝试了上面的代码,但它说这是模棱两可的。有没有办法解决歧义?
答案 0 :(得分:1)
如果您真的只想要页面上的第一个匹配元素,那么
within first('.Collection .Thing:first-child', minimum: 1) do
page.must_have_content 'lorem ipsum'
end
如果页面已经完全加载,则必须使用最小值:1选项,但如果页面尚未完全填充,它将使Capybara等待至少一个匹配元素显示在页面上加载(或列表通过ajax等填充)。没有它#first如果页面上没有匹配的元素,通常会立即返回nil