<ul>
<% @topic.contents.each do |content| %>
<li>
<%= content.content %> <%= link_to "Edit", edit_content_path(content) %> <br><br>
</li>
<% end %>
</ul>
我需要使用Capybara进行测试。我尝试在我的测试文件中输入:
test "there is an edit link on the show page" do
click_link "Enter"
click_link "Ruby"
assert find_link("Edit").first.visible?
end
但它最终给了我一个信息:
1) Error:
VisitorFindContentTest#test_there_is_an_edit_link_on_the_show_page:
Capybara::Ambiguous: Ambiguous match, found 2 elements matching link "Edit"
test/integration/visitor_find_content_test.rb:44:in `block in <class:VisitorFindContentTest>'
我还能做什么?可以做些什么?我应该做些什么来使我的每个编辑链接都是唯一的吗?或者是否有一个水豚测试方法,只是寻找编辑链接的第一次出现?
答案 0 :(得分:0)
为:id
添加:class
或content
具体内容,如下所示:
<%= content.content %> <%= link_to "Edit", edit_content_path(content), id: "content_#{content.id}" %> <br><br>
或
<%= content.content %> <span id: "content_#{content.id}"><%= link_to "Edit", edit_content_path(content) %></span> <br><br>
然后您可以使用此ID单击链接,如下所示(使用上面的第二个选项):
content = Content.first # or some way of finding the required content object
within("#content_#{content.id}") do
click_link("Edit")
end