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模棱两可的比赛 – 应该有__内容所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)