Eu tenho um campo com uma etiqueta adequada que posso preencher com capivara sem problemas:
fill_in 'Your name', with: 'John'
Gostaria de verificar o valor que ele tem antes de preenchê-lo e não consigo descobrir.
Se eu adicionar após fill_in
a seguinte linha:
find_field('Your name').should have_content('John')
Esse teste falha, embora o preenchimento pouco antes tenha funcionado como eu verifiquei ao salvar a página.
o que estou perdendo?
.value
. Obrigado!find_field
e outrosNode::Finders
são usados para encontrar nós e executar ações neles, em vez de expectativa. É claro que isso não é uma regra, mas para algo simples, como é o caso da solução incorporada, é uma idéia melhor. Apenas dizendo!Outra solução bonita seria:
ou
respectivamente.
Veja também a referência .
Nota : para entradas desativadas, você precisará adicionar a opção
disabled: true
.fonte
with
Definitivamente, a passagem retornou true se o valor corresponder, para mim, qual é o resultado esperado.expected […] but there were no matches. Also found "", which matched the selector but not all filters..
um campo vazio que se aproxima muito de uma mensagem de erro muito agradável.Se você deseja testar especificamente um espaço reservado, use:
ou:
Se você deseja testar o valor inserido pelo usuário:
fonte
Fiquei pensando em como fazer algo um pouco diferente: queria testar se o campo tinha algum valor (enquanto utilizava a capacidade da Capivara de testar novamente o matcher até que ele corresponda ). Acontece que é possível usar um "bloco de filtro" para fazer isso:
fonte