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?
Aller de mémoire peut ne pas être correct à 100%, mais je pense que si vous avez une référence à l'élément 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 pouvoir trouver l'élément comme vous le savez son ID:
fill_in 'donation_pledge_hundreds', with: "10"
Au lieu d'une méthode, vous pouvez utiliser des crochets pour renvoyer :name
ou :id
, par exemple .
element = find(:css, "input[id$='donation_pledge_hundreds']")
fill_in element[:name], :with => "10"
La même approche peut être utilisée avec select
-
select my_type, from: find('select[name$="[type]"]')[:name]
find("input[id$='donation_pledge_hundreds']").set "10"
Il est à noter que vous pouvez chaîner vos trouvailles.
@modal = find(".modal")
@modal.find('input[name=foo]').set "bar"
element = find(:css, "input[id$='donation_pledge_hundreds']")
element.fill_in with: "10"
fill_in <$id>, :with => 'text you want to fill in'