Как решить ошибку Capybara::ElementNotFound

Я застрял со следующей проблемой, это первый раз, когда я использую водосвинку, у вас есть идеи, как я могу решить эту проблему, спасибо

Я использую рельсы 3.0.0 и следующие драгоценные камни

gem 'rails', '3.0.0'
gem 'capybara'
gem 'database_cleaner'
gem 'cucumber-rails'
gem 'cucumber'
gem 'rspec-rails'
gem 'spork'
gem 'launchy'

У меня есть следующее в моем сенарио

When I go to the new customer page
And I fill in "Email" with "[email protected]"

в моем customer_steps.rb у меня есть

When /^I fill in "([^"]*)" with "([^"]*)"$/ do |arg1, arg2|
  fill_in arg1, :with => arg2
end

На мой взгляд

- form_for @customer do |f|
  = f.label :email, 'Email'
  = f.text_field :email
  = f.submit

Когда я запускаю свой сценарий, я получаю это сообщение об ошибке

 Scenario: Register new customer                  # features/manage_customers.feature:7
    When I go to the new customer page             # features/step_definitions/customer_steps.rb:1
    And I fill in "Email" with "[email protected]"  # features/step_definitions/customer_steps.rb:5
      cannot fill in, no text field, text area or password field with id, name, or label 'Email' found (Capybara::ElementNotFound)
      ./features/step_definitions/customer_steps.rb:6:in `/^I fill in "([^"]*)" with "([^"]*)"$/'
      features/manage_customers.feature:9:in `And I fill in "Email" with "[email protected]"'

person denisjacquemin    schedule 04.09.2010    source источник


Ответы (2)


Я нашел свою ошибку!!!

When I go to the new customer page

до того, как шаг был

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

Я забыл о визите...

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

Вместо этого используйте этот идентификатор поля, который должен быть похож на

И я заполняю "customer_email" с "[email protected]"

если @customer является объектной моделью клиента

person Rishav Rastogi    schedule 04.09.2010
comment
спасибо Ришав за ваш ответ, я уже пробовал это и получил ту же ошибку, есть ли способ «сбросить» html страницы, чтобы увидеть, выполняет ли поиск капибара правильный код? - person denisjacquemin; 05.09.2010
comment
хорошо, когда я запускаю огурец, у меня ничего нет в моих файлах журнала (dev или test) - person denisjacquemin; 05.09.2010
comment
ставит page.body - это то, как вы получаете вывод на текущем шаге - person Cory Foy; 18.05.2012