Mam pole z odpowiednią etykietą, które mogę bez problemu wypełnić kapibarą:
fill_in 'Your name', with: 'John'
Chciałbym sprawdzić jego wartość przed wypełnieniem i nie mogę tego rozgryźć.
Jeśli dodam po fill_in
następującym wierszu:
find_field('Your name').should have_content('John')
Ten test kończy się niepowodzeniem, chociaż wypełnienie tuż przed działało tak, jak zweryfikowałem, zapisując stronę.
czego mi brakuje?
.value
kawałka. Dzięki!find_field
a inneNode::Finders
służą do znajdowania węzłów i wykonywania na nich działań, a nie oczekiwania. Oczywiście nie jest to reguła, ale w przypadku czegoś prostego, ponieważ takie rozwiązanie z wbudowanym rozwiązaniem jest lepszym pomysłem. Tylko mówię!Innym ładnym rozwiązaniem byłoby:
lub
odpowiednio.
Zobacz także odniesienie .
Uwaga : w przypadku wyłączonych wejść musisz dodać opcję
disabled: true
.źródło
with
pewno zwróciło prawdę tylko wtedy, gdy wartość pasuje, dla mnie, co jest oczekiwanym wynikiem.expected […] but there were no matches. Also found "", which matched the selector but not all filters..
puste pole, które jest bardzo bliskie bardzo ładnemu komunikatowi o błędzie.Jeśli chcesz specjalnie przetestować dla symbolu zastępczego, użyj:
lub:
Jeśli chcesz przetestować wartość wprowadzoną przez użytkownika:
źródło
Zastanawiałem się, jak zrobić coś nieco innego: chciałem sprawdzić, czy pole ma jakąś wartość (wykorzystując zdolność Kapibary do ponownego testowania dopasowania, dopóki nie pasuje ). Okazuje się, że można do tego użyć „bloku filtrującego”:
źródło