Ruby on rails 3 使用简单形式和参数求解(Capybara::ElementNotFound)

Ruby on rails 3 使用简单形式和参数求解(Capybara::ElementNotFound),ruby-on-rails-3,cucumber,capybara,simple-form,webrat,Ruby On Rails 3,Cucumber,Capybara,Simple Form,Webrat,我用cucumber来测试,我用simple_表单作为联系人表单。 我得到以下错误: Given I am on the login page And I fill in "student_name" with "sadik" Unable to find field "student_name" (Capybara::ElementNotFound) 我的步骤: Scenario: Add a student to the database Given I am on the

我用cucumber来测试,我用simple_表单作为联系人表单。 我得到以下错误:

Given I am on the login page 
And I fill in "student_name" with "sadik" 
    Unable to find field "student_name" (Capybara::ElementNotFound)
我的步骤:

Scenario: Add a student to the database
  Given I am on the login page
  And I fill in "student_name" with "sadik"
  When I press "OK"
  ...
表格:

<%= simple_form_for @student do |f| %>
  <%= f.input :name, label: 'student_name' %>,
    :input_html => { :field => 'student_name' } %>
  <%= f.button :submit %>
<% end %>

那么问题出在哪里呢?

您的语法和标签似乎不正确

对于表单,请尝试:

<%= simple_form_for @student do |f| %>
   <%= f.input :name, as: :text, label: 'Student Name' %>
   <%= f.button :submit %>
<% end %>
编辑:您可能还需要更改此行并删除引号:

And I fill in student_name with "sadik"

这仍然让我感到:找不到字段“Student Name”(Capybara::ElementNotFound)您确定您的测试正在查看正确的页面吗?尝试将
save_和\u open_page
添加到您的一个步骤中,并检查页面源HTML中是否有正确的表单名称字段。
When /^I fill in student_name with "([^\"]*)"$/ do |value|
  fill_in "Student Name", :with => value
end
And I fill in student_name with "sadik"