0

テストにキュウリを使用しており、連絡フォームに simple_form を使用しています。次のエラーが表示されます。

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

では、どこに問題があるのでしょうか。

4

1 に答える 1

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"
于 2013-02-22T14:39:47.360 に答える