【发布时间】:2012-12-01 17:06:09
【问题描述】:
我正在尝试使用 capybara+rspec 并收到此错误:无法找到字段“名称”(Capybara::ElementNotFound)
这是我的表格:
%h2 Sign up
= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => {:class => 'form-vertical' }) do |f|
= f.error_notification
= display_base_errors resource
= f.input :name, :autofocus => true
= f.button :submit, 'Sign up', :class => 'btn-primary'
= render "devise/shared/links"
这是我的 user_steps.rb
When /^I sign up with valid user data$/ do
create_visitor
sign_up
end
def create_visitor
@visitor ||= { :name => "Test visitor"}
end
def sign_up
visit '/users/sign_up'
fill_in "Name", :with => @visitor[:name]
click_button "Sign up"
end
怎么了????
【问题讨论】:
-
当找不到元素时,可能表示您没有编写该元素,或者您的测试正在查看错误的页面。我会首先检查
/users/sign_up的页面源代码,看看您是否将适当的名称或ID 与您的测试相匹配。如果那是正确的,那么我会检查在到达/users/sign_up时测试是否有任何障碍。 -
在您的
fill_in之后加入save_and_open_page,您将能够看到Capybara 在页面上的实际想法。 -
关于
save_and_open_page@nmott 的好建议,但应该指出您需要 Gemfile 中的启动 gem。 -
@jason328 thx mate 正是我的问题!
标签: ruby-on-rails-3 rspec capybara