Cómo usar fill_in con find en Capybara(si es posible)
(4)
En lugar de un método, puede usar corchetes para devolver :name
o :id
, por ejemplo, element = find(:css, "input[id$=''donation_pledge_hundreds'']") fill_in element[:name], :with => "10"
El mismo enfoque se puede usar con select
- select my_type, from: find(''select[name$="[type]"]'')[:name]
Me gustaría hacer lo siguiente, pero no puedo debido a la naturaleza de fill_in esperando un localizador como primer argumento.
find(:css, "input[id$=''donation_pledge_hundreds'']").fill_in :with => "10"
También he intentado hacer
element = find(:css, "input[id$=''donation_pledge_hundreds'']")
fill_in element.<method> , :with => "10"
pero no hay métodos que devuelvan datos para identificar el elemento a fill_in.
¿Alguna idea de la mejor forma de encontrar un campo a través de una expresión regular para usar con fill_in?
Salir de la memoria puede que no sea 100% correcto, pero creo que si tiene una referencia al elemento en sí, usaría set
lugar de fill_in
:
find(:css, "input[id$=''donation_pledge_hundreds'']").set("10")
Sin embargo, para su ejemplo específico, fill_in
debería poder encontrar el elemento como usted sabe que es ID:
fill_in ''donation_pledge_hundreds'', with: "10"
fill_in <$id>, :with => ''text you want to fill in''
find("input[id$=''donation_pledge_hundreds'']").set "10"
Vale la pena señalar que puedes encadenar tus hallazgos.
@modal = find(".modal")
@modal.find(''input[name=foo]'').set "bar"