我如何在水豚中点击这个按钮

问题描述 投票:0回答:4

请帮我解决水豚的问题

我在水豚中有一个这样的按钮:

<input type="submit" value="Verify" name="verify" id="verify" class="button">

我尝试过

click_button "verify"

但它给出了错误:

Failure/Error: find('#verify').click
NoMethodError:
  undefined method `node_name' for nil:NilClass
ruby-on-rails ruby-on-rails-3 testing rspec capybara
4个回答
21
投票

作者解答

问题出在html代码中:

<div>
<form>
<div>    
</div>
</div>
  <input type="submit" value="Verify" name="verify" id="verify" class="button">
</form>

因为有一个多余的

</div>
,所以
<input>
被处理在表单之外,因此
capybara
导致了这些错误。删除多余的
</div>
后,一切正常。


16
投票

尝试在

js: true
中添加
describe
。当您没有包含该按钮的表单时,就会发生这种情况。


0
投票

您是否尝试过“加倍”CSS 选择器?自 capybara-2.4.3 以来,这一直是我的首选机制

find("#verify").find("[name=verify]").click

除了 #id-vale 之外的任何其他属性都应该可以解决问题,例如

find("#verify").find(".button]").click

0
投票

如果你有一个元素的 ID,只需使用 @bonzofenix 的方法,但让它更简单一点:

within 'form' do
  find('#verify').click
end
© www.soinside.com 2019 - 2024. All rights reserved.