当我使用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,我只使用了水豚
提前致谢!
答案 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
项目的人来说,这可能仍然有用