在这种情况下,如何单击第一个链接:
<div class="item">
<a href="/agree/">Agree</a>
</div>
<div class="item">
<a href="/agree/">Agree</a>
</div>
within ".item" do
first(:link, "Agree").click
end
我得到这个错误:
Capybara::Ambiguous:
Ambiguous match, found 2 elements matching css ".item"
而且没有
within
我得到这个错误:Failure/Error: first(:link, "Agree").click
NoMethodError:
undefined method `click' for nil:NilClass
最佳答案
您可以使用:
first('.item').click_link('Agree')
要么
first('.item > a').click
(如果您的默认选择器是:css)
您问题中的代码不适用于:
within ".item" do
first(:link, "Agree").click
end
等效于:
find('.item').first(:link, "Agree").click
Capybara找到了几个
.item
,因此引发了异常。我认为 capybara 2的这种行为非常好。