Sto seguendo il tutorial di Ruby on Rails di Michael Hartl. Quando uso rspec/capybara, il metodo fill_in mi rende confuso. Ho il seguente codice della vista:Come funziona fill_in in Rspec/Capybara?
<%= f.label :name %>
<%= f.text_field :name %>
Questo è il mio codice di prova:
fill_in "Name", with: "Example User"
Sembra che etichetta e text_field sono entrambi necessari per FILL_IN per individuare il campo di immissione. Se decollo f.label
o cambio <%= f.text_field :name %>
in <%= f.text_field :another_name %>
, il test mi darà l'errore ElementNotFound
. Qualcuno può spiegare come funziona fill_in qui? Il campo di immissione e l'etichetta sono entrambi necessari per il metodo fill_in
?
Vuol dire che se uso il nome dell'etichetta nell'espressione, il metodo FILL_IN sta andando a riempire l'ingresso subito dopo l'etichetta? –
@JoeyHu bene, non proprio. Dai uno sguardo allo snippet 'html' nella mia risposta - l'attributo' for' dell'etichetta ha lo stesso valore di 'id' di input, quindi sono collegati insieme indipendentemente dalla posizione effettiva sulla pagina. – twonegatives