18

请帮我用水豚解决这个问题

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

<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
4

4 回答 4

21

作者的回答

问题出在html代码中:

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

因为有一个多余</div>的,<input>被处理在表格之外,从而capybara导致那些错误。删除多余的后</div>,一切正常。

于 2012-06-27T16:29:04.787 回答
16

尝试js: truedescribe. 当您没有包含该按钮的表单时会发生这种情况。

于 2013-02-05T15:28:34.880 回答
0

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

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

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

find("#verify").find(".button]").click
于 2015-03-30T20:27:25.957 回答
0

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

within 'form' do find('#verify').click end

于 2015-08-21T20:08:38.737 回答