cucumber web_step # follow с использованием capybara создает NameError - PullRequest
0 голосов
/ 03 апреля 2011

Кто-нибудь знает, почему я получаю следующую ошибку при использовании метода web_step # follow?

When I follow "Stuff" within "#main-nav"               # features/step_definitions/web_steps.rb:33
  undefined local variable or method `node' for #<Capybara::Driver::RackTest::Node:0x00000101409b40> (NameError)
  ./features/step_definitions/web_steps.rb:35:in `block (2 levels) in <top (required)>'
  ./features/step_definitions/web_steps.rb:14:in `block in with_scope'
  ./features/step_definitions/web_steps.rb:14:in `with_scope'
  ./features/step_definitions/web_steps.rb:34:in `/^(?:|I )follow "([^"]*)"(?: within "([^"]*)")?$/'

Это вывод html:

<ul id='main-nav'> 
  <li><a href="/things">Things</a></li> 
  <li><a href="/stuff">Stuff</a></li> 
</ul>

P.S. Я удалил вебрат и использую исключительно капибару

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 06 мая 2011

per: https://github.com/jnicklas/capybara/issues/110

закомментируйте эту строку в env.rb:

require 'cucumber/rails/capybara_javascript_emulation'

Примечание: после комментирования этой строки вам придется явнопометьте свои функции / сценарии с помощью @javascript, если вы хотите нажимать на ссылки с обработчиками onclick javascript.

См. также: https://github.com/aslakhellesoy/cucumber-rails/issues/77, что в конечном итоге приведет вас в путешествие, чтобы обнаружить, что это нужно исправить в cucumber-rails v0.4.0 (2011-03-20).Это все еще может быть актуально для людей с Rails 2.3.x проектами, использующими cucumber-rails v0.3.2

1 голос
/ 03 апреля 2011

Это означает, что фактический вывод вашей страницы не включает элемент, который вы пытаетесь найти. Например, если у вас есть with_scope("#my_div"), но в вашем контенте нет div с идентификатором my_div, это вызовет исключение.

Я бы предложил попытаться добавить шаг огурца в Then show me the page перед ошибочным шагом и исследовать источник сгенерированной страницы.

...