2013-02-22 144 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