2013-02-22 3 views
0

나는 오이를 사용하여 테스트하고 있습니다. 연락처 양식에 simple_form을 사용하고 있습니다. 나는 다음과 같은 오류가 발생합니다 :간단한 형태와 오이로 (Capybara :: 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 %> 

나는 또한 라벨 대신 ID와 이름을했습니다. 그러나 아무런 효과가 없었다.

그러나 첫 번째 단계는 올바른 :

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

아직도 나에게 준다 : "학생 이름"필드를 찾을 수 없다. (Capybara :: ElementNotFound) – Sadik

+1

당신의 테스트가 th 오른쪽 페이지? 단계 중 하나에'save_and_open_page'를 추가하고 올바른 양식 이름 필드에 대해 페이지 소스 HTML을 검사하십시오. – jakmarkiewicz