2013-02-22 48 views
0

我正在使用黄瓜来测试,我使用simple_form的联系表单。 我得到以下错误:解决(水豚:: ElementNotFound)与简单的形式和黄瓜

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 %> 

我也试过标识和名称,而不是标签。但它没有效果。

但第一步是正确的:

When /^I go to (.+)$/ do |page_name| 
    visit path_to(page_name) 
end 

When /^I fill in "([^\"]*)" with "([^\"]*)"$/ do |field, value| 
    fill_in(field.gsub(' ', '_'), :with => value) 
end 

那么问题出在哪里?

回答

0

您的语法和标签看起来不正确。

对于形式的尝试:

<%= simple_form_for @student do |f| %> 
    <%= f.input :name, as: :text, label: 'Student Name' %> 
    <%= f.button :submit %> 
<% end %> 

而对于最后一步尝试:

When /^I fill in student_name with "([^\"]*)"$/ do |value| 
    fill_in "Student Name", :with => value 
end 

编辑:您可能也需要改变这一行并删除引号:

And I fill in student_name with "sadik" 
+0

这仍然给我:无法找到字段“学生名称”(水豚:: ElementNotFound) – Sadik 2013-02-22 14:59:29

+1

你确定你的测试是在看第e右页?尝试将“save_and_open_page”添加到您的某个步骤,然后检查页面源HTML以获取正确的表单名称字段。 – jakmarkiewicz 2013-02-22 15:08:37