カピバラでこの問題を解決するのを手伝ってください
私はカピバラにこのようなボタンを持っています:
<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>
が1つあるため、<input>
はフォームの外部で処理され、capybara
がこれらのエラーを引き起こします。冗長な</div>
を削除すると、すべて正常に機能します。
describe
にjs: true
を追加してみてください。これは、ボタンを含むフォームがない場合に発生します。
CSSセレクターを「2倍」にしてみましたか?これは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