加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Capybara模棱两可的比赛 – 应该有__内容

发布时间:2020-12-17 03:05:25 所属栏目:百科 来源:网络整理
导读:我在Rails应用程序中使用Capybara和Rspec,并且我一直在使用以下消息测试失败: Failure/Error: it { should have_content('error') }Capybara::Ambiguous: Ambiguous match,found 2 elements matching xpath "/html" 这是合乎逻辑的,因为在我的测试中,我的应
我在Rails应用程序中使用Capybara和Rspec,并且我一直在使用以下消息测试失败:

Failure/Error: it { should have_content('error') }
Capybara::Ambiguous:
  Ambiguous match,found 2 elements matching xpath "/html"

这是合乎逻辑的,因为在我的测试中,我的应用程序应该呈现带有“错误”内容的两条消息.

<% if object.errors.any? %>
  <div id="error_explanation">
    <div class="alert alert-error">
      <%= t('the_form_contains') %>
      <%= pluralize(object.errors.count,t('error')) %>.
    </div>
    <ul>
      <% object.errors.full_messages.each do |msg| %>
        <li>* <%= msg %></li>
      <% end %>
    </ul>
  </div>
<% end %>

在这里我的应用程序布局:

<!DOCTYPE html>
<html>
<head>
  <title><%= full_title(yield(:title)) %></title>
  <%= stylesheet_link_tag    "application",media: "all","data-turbolinks-track" => true %>
  <%= javascript_include_tag "application","data-turbolinks-track" => true %>
  <%= csrf_meta_tags %>
  <%= render 'layouts/shim' %>
</head>
  <body>
    <%= render 'layouts/header' %>
    <div class="container">
      <div class="row-fluid">
        <div class="offset2 span8 offset2">
          <% flash.each do |key,value| %>
            <div class="alert alert-<%= key %>"><%= value %></div>
          <% end %>
        </div>
      </div>
      <%= yield %>
      <%= render 'layouts/footer' %>
      <%= debug(params) if Rails.env.development? %>
    </div>
  </body>
</html>

你知道一种方式(如选项),让它通过吗?

编辑

我使用了save_and_open_page并且没有找到任何额外的html标记,也没有找到页面外的错误消息.但当我删除<!DOCTYPE html>然后它工作.我必须真的有<!DOCTYPE html>和一个开头< html>标签 ?我可以删除<!DOCTYPE html>没有后果?

<!DOCTYPE html>
<html>
  <head>
    <title>Le Troquet</title>
    <link data-turbolinks-track="true" href="/assets/application.css" media="all" rel="stylesheet" />
    <script data-turbolinks-track="true" src="/assets/application.js"></script>

    <!--[if lt IE 9]>
      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->

  </head>
  <body>
     .
     .
     .
     .
     .
<!-- There is no html tag here -->
     .
     .
     .
     .
  </body>
</html>

解决方法

看起来问题是你要么:

>有两个< html>您网页中的标签,或者可能是
>“错误”文本显示在< html>< / html>之外标签.

见这个讨论:Ambiguous match,found 2 elements matching xpath “/html”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读