S'il vous plaît aidez-moi à résoudre ce problème avec capybara
J'ai un bouton comme ça dans capybara:
<input type="submit" value="Verify" name="verify" id="verify" class="button">
J'ai essayé avec
click_button "verify"
mais cela donne une erreur:
Failure/Error: find('#verify').click
NoMethodError:
undefined method `node_name' for nil:NilClass
Le problème réside dans le code html:
<div>
<form>
<div>
</div>
</div>
<input type="submit" value="Verify" name="verify" id="verify" class="button">
</form>
Comme il existe un </div>
redondant, le <input>
était traité en dehors du formulaire, par conséquent capybara
provoquait ces erreurs. Après avoir supprimé le </div>
redondant, tout fonctionne correctement.
Essayez d’ajouter js: true
dans la describe
. Cela se produit lorsque vous n'avez pas de formulaire contenant le bouton.
Si vous avez un ID pour un élément, utilisez simplement l'approche de @ bonzofenix, mais simplifiez-la un peu:
within 'form' do
find('#verify').click
end
Avez-vous essayé de "doubler" les sélecteurs CSS? Cela a été mon mécanisme préféré depuis capybara-2.4.3
find("#verify").find("[name=verify]").click
tout autre attribut en plus du # id-vale devrait faire l'affaire, par exemple
find("#verify").find(".button]").click