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

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

概述我在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 >      <%= 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 >      <div >        <div >          <% flash.each do |key,value| %>            <div ><%= 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”.

总结

以上是内存溢出为你收集整理的ruby-on-rails – Capybara模棱两可比赛 – 应该有__内容全部内容,希望文章能够帮你解决ruby-on-rails – Capybara模棱两可的比赛 – 应该有__内容所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1290561.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存