首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails::歧义:模糊匹配

Rails::歧义:模糊匹配
EN

Stack Overflow用户
提问于 2014-08-17 03:25:30
回答 2查看 5.8K关注 0票数 1

我对rails非常陌生,而且还在学习它。现在我收到了这样的测试失败消息:

代码语言:javascript
复制
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)>'

因为我的主页上有两个相同的“帮助”链接,但是测试似乎认为这是一个不明确的匹配,我希望它以相同的方式测试这两个链接,因为链接直接指向同一个页面。

事实上,网站上有几种解决方案,但对我来说,大多数解决方案都很复杂,因为我是新来的,所以有人能给我最简单的解决方案吗?提前谢谢。

更新:

在我看来和规范上没有什么复杂的。我还在学习一切。

这是我的规格

代码语言:javascript
复制
        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")

这是布局中我的标题部分

代码语言:javascript
复制
<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>

这是布局中我的页脚部分

代码语言:javascript
复制
<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珠子帮助链接,它们是相同的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-17 04:10:46

在进行此操作时,可以通过命名周围的元素来澄清要单击的帮助按钮,从而使规范更加具体。只有当它们在不同的元素中时才能起作用

根据你发的html ..。根据您想要测试的链接(在页眉或页脚中),我会将click_link(“帮助”)替换为以下内容之一

代码语言:javascript
复制
    within("header") do
        click_link "Help"
    end

代码语言:javascript
复制
    within("footer") do
        click_link "Help"
    end

或者查看这个解决方案-> Capybara Ambiguity Resolution

票数 5
EN

Stack Overflow用户

发布于 2016-02-21 11:26:08

你可能想试一试

Click_link(“帮助”,:match => :first) Click_link(“帮助”,:match => :smart) Click_link(“帮助”,:match => :prefer_exact) Click_link(“帮助”,:match => :one)

希望这能有所帮助。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25346070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档