我对rails非常陌生,而且还在学习它。现在我收到了这样的测试失败消息:
1) LayoutLinks should have the right links on the layout
Failure/Error: click_link("Help")
Capybara::Ambiguous:
Ambiguous match, found 2 elements matching link "Help"
# ./spec/requests/layout_links_spec.rb:47:in `block (2 levels) in <top (required)>'因为我的主页上有两个相同的“帮助”链接,但是测试似乎认为这是一个不明确的匹配,我希望它以相同的方式测试这两个链接,因为链接直接指向同一个页面。
事实上,网站上有几种解决方案,但对我来说,大多数解决方案都很复杂,因为我是新来的,所以有人能给我最简单的解决方案吗?提前谢谢。
更新:
在我看来和规范上没有什么复杂的。我还在学习一切。
这是我的规格
visit root_path
expect(page).to have_title("Home")
click_link("About")
expect(page).to have_title("About")
click_link("Contact")
expect(page).to have_title("Contact")
click_link("Help")
expect(page).to have_title("Help")这是布局中我的标题部分
<header>
<nav class="round">
<ul>
<li><%= link_to "Home", root_path %></li>
<li><%= link_to "Help", help_path %></li>
<li><%= link_to "Sign in", "#" %></li>
</ul>
</nav>
</header>这是布局中我的页脚部分
<footer>
<nav class="round">
<ul>
<li><%= link_to "About", about_path %></li>
<li><%= link_to "Contact", contact_path %></li>
<li><%= link_to "Help", help_path %></li>
</ul>
</nav>
</footer>请注意,在两个部分中有两个se珠子帮助链接,它们是相同的。
发布于 2014-08-17 04:10:46
在进行此操作时,可以通过命名周围的元素来澄清要单击的帮助按钮,从而使规范更加具体。只有当它们在不同的元素中时才能起作用
根据你发的html ..。根据您想要测试的链接(在页眉或页脚中),我会将click_link(“帮助”)替换为以下内容之一
within("header") do
click_link "Help"
end或
within("footer") do
click_link "Help"
end或者查看这个解决方案-> Capybara Ambiguity Resolution
发布于 2016-02-21 11:26:08
你可能想试一试
Click_link(“帮助”,:match => :first) Click_link(“帮助”,:match => :smart) Click_link(“帮助”,:match => :prefer_exact) Click_link(“帮助”,:match => :one)
希望这能有所帮助。
https://stackoverflow.com/questions/25346070
复制相似问题