请帮我解决水豚的问题
我在水豚中有一个这样的按钮:
<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
问题出在html代码中:
<div>
<form>
<div>
</div>
</div>
<input type="submit" value="Verify" name="verify" id="verify" class="button">
</form>
因为有一个多余的
</div>
,所以<input>
被处理在表单之外,因此capybara
导致了这些错误。删除多余的</div>
后,一切正常。
尝试在
js: true
中添加 describe
。当您没有包含该按钮的表单时,就会发生这种情况。
您是否尝试过“加倍”CSS 选择器?自 capybara-2.4.3 以来,这一直是我的首选机制
find("#verify").find("[name=verify]").click
除了 #id-vale 之外的任何其他属性都应该可以解决问题,例如
find("#verify").find(".button]").click
如果你有一个元素的 ID,只需使用 @bonzofenix 的方法,但让它更简单一点:
within 'form' do
find('#verify').click
end