95 votes

Comment utiliser fill_in avec find à Capybara (si possible)

J'aimerais faire ce qui suit, mais je ne peux pas, en raison de la nature de fill_in, attendre un localisateur comme premier argument.

 find(:css, "input[id$='donation_pledge_hundreds']").fill_in :with => "10"
 

J'ai aussi essayé de faire

 element = find(:css, "input[id$='donation_pledge_hundreds']")   
fill_in element.<method> , :with => "10"
 

mais il n'y a pas de méthode qui retourne des données pour identifier l'élément à fill_in.

Des idées sur la meilleure façon de trouver un champ via une expression rationnelle à utiliser avec fill_in?

168voto

Jon M Points 6455

Aller de mémoire peut ne pas être correct à 100%, mais je pense que si vous avez une référence à l'élément lui-même, vous utiliseriez set au lieu de fill_in :

 find(:css, "input[id$='donation_pledge_hundreds']").set("10")
 

Cependant, pour votre exemple spécifique, fill_in devrait être capable de trouver l'élément comme vous le savez son ID:

 fill_in 'donation_pledge_hundreds', with: "10"
 

3voto

Nate Points 870
 find("input[id$='donation_pledge_hundreds']").set "10"
 

Il est à noter que vous pouvez enchaîner vos trouvailles.

 @modal = find(".modal")
@modal.find('input[name=foo]').set "bar"
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X