1
我正在测试我的Rails应用程序的RSpec和水豚注册表单。当我想测试我面对这个错误,水豚:: ElementNotFound:
Failures:
1) user registration allows new users to register with an email address and password
Failure/Error: fill_in "Confirmation", :with => "foo"
Capybara::ElementNotFound:
no text field, text area or password field with id, name, or label 'Confirmation' found
# ./user_spec.rb:9:in `block (2 levels) in <top (required)>'
这是我的形式,其为注册表格,
<div id="box">
<div class="block" id="block-signup">
<h2>Sign up</h2>
<div class="content">
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :class => "form login"}) do |f| %>
<% if @user.errors.any? %>
<div id="errorExplanation">
<h2><%= pluralize(@user.errors.count, "error") %> prohibited
this post from being saved:</h2>
<ul>
<% @user.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<%end%>
<div class="group wat-cf">
<div class="left">
<label class="label"><%= f.label :email %></label>
</div>
<div class="right">
<%= f.email_field :email %>
<span class="description">Ex: [email protected]</span>
</div>
</div>
<div class="group wat-cf">
<div class="left">
<label class="label"><%= f.label :password %></label>
</div>
<div class="right">
<%= f.password_field :password %>
<span class="description">Must contains the word 'yeah'</span>
</div>
</div>
<div class="group wat-cf">
<div class="left">
<label class="label"><%= f.label :confirmation %></label>
</div>
<div class="right">
<%= f.password_field :password_confirmation %>
<span class="description">Don't miss any letters</span>
</div>
</div>
<div class="group navform wat-cf">
<button class="button" type="submit">
<%= f.submit "Sign in", :type => :image, :src => "http://pilu.github.com/web-app-theme/images/icons/tick.png" %>
</button>
</div>
<% end %>
</div>
<div id="links-sup">
<h4><%= render "links" %></h4></div>
</div>
</div>
我的测试文件是规范/请求/ user_spec.rb
require 'spec_helper'
describe "user registration" do
it "allows new users to register with an email address and password" do
visit "https://stackoverflow.com/users/sign_up"
fill_in "Email", :with => "[email protected] "
fill_in "Password", :with => "foo"
fill_in "Confirmation", :with => "foo"
click_button "Sign up"
page.should have_content("Welcome! You have signed up successfully.")
end
end
你有什么想法解决它?
感谢您的回答,但对我来说有一个令人困惑的地方。当我在浏览器中查看我的应用程序html源代码时,我看到。请问这是一个问题吗? – ndrx42
rails生成的视图:”#{modelname} _#{fieldname}“,和“#{modelname} [#{fieldname}]”作为名称属性。id使得人们可以轻松地从javascript访问,并命名为将数据提交回rails。 – Chamnap