黄瓜的web_step#follow使用capybara产生一个NameError

时间:2011-04-03 00:23:42

标签: ruby-on-rails ruby ruby-on-rails-3 cucumber capybara

当我使用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。我已经删除了webrat,我只使用了水豚

提前致谢!

2 个答案:

答案 0 :(得分:1)

这意味着您网页的实际输出不包含您要搜索的元素。例如,如果您有with_scope("#my_div"),但您的内容没有任何ID为my_div的div,则会引发此异常。

我建议在失败的步骤之前尝试添加Then show me the page的黄瓜步骤,并调查生成的页面的来源。

答案 1 :(得分:1)

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

env.rb注释掉这一行:

require 'cucumber/rails/capybara_javascript_emulation'

注意:在评论该行后,如果要使用onclick javascript处理程序单击链接,则必须使用@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项目的人来说,这可能仍然有用