Ich folge Michael Hartls Ruby on Rails Tutorial. Wenn ich rspec/capybara verwende, verwirrt mich die fill_in-Methode. Ich habe den folgenden Code anzeigen:Wie funktioniert fill_in in Rspec/Capybara?
<%= f.label :name %>
<%= f.text_field :name %>
Dies ist mein Testcode:
fill_in "Name", with: "Example User"
Es scheint, dass Etikett und text_field sind beide erforderlich für fill_in das Eingabefeld zu finden. Wenn ich entweder f.label
ausziehe oder <%= f.text_field :name %>
auf <%= f.text_field :another_name %>
setze, wird der Test mir ElementNotFound
Fehler geben. Kann mir jemand erklären, wie die fill_in hier funktioniert? Sind für die Methode fill_in
Eingabefeld und Label erforderlich?
das bedeutet, wenn ich Markennamen im Ausdruck verwenden, wird die fill_in Methode werde im Eingabe füllen direkt nach dem Etikett? –
@JoeyHu gut, nicht wirklich. Sehen Sie sich das 'html'-Snippet in meiner Antwort an - das' for'-Attribut des Labels hat den gleichen Wert wie das 'id' für die Eingabe, so dass sie unabhängig von der tatsächlichen Position auf der Seite miteinander verknüpft sind. – twonegatives