Tengo un campo con una etiqueta adecuada que puedo rellenar con carpincho sin ningún problema:
fill_in 'Your name', with: 'John'
Me gustaría verificar el valor que tiene antes de completarlo y no puedo entenderlo.
Si agrego después de fill_in
la siguiente línea:
find_field('Your name').should have_content('John')
Esa prueba falla, aunque el relleno justo antes funcionó como he verificado al guardar la página.
¿Qué me estoy perdiendo?
.value
poco. ¡Gracias!find_field
y otrosNode::Finders
se utilizan para encontrar nodos y realizar acciones en ellos en lugar de las expectativas. Por supuesto, esto no es una regla, pero para algo simple como esto, ir con la solución incorporada es una mejor idea. ¡Solo digo!Otra bonita solución sería:
o
respectivamente.
Ver también la referencia .
Nota : para las entradas deshabilitadas, deberá agregar la opción
disabled: true
.fuente
with
definitivamente solo devuelve verdadero si el valor coincide, para mí, que es el resultado esperado.expected […] but there were no matches. Also found "", which matched the selector but not all filters..
a un campo vacío que se acerca mucho a un mensaje de error muy agradable.Si desea probar específicamente un marcador de posición, use:
o:
Si desea probar el valor introducido por el usuario:
fuente
Me preguntaba cómo hacer algo ligeramente diferente: quería probar si el campo tenía algún valor (mientras hacía uso de la capacidad de Capybara para volver a probar el marcador hasta que coincida ). Resulta que es posible usar un "bloque de filtro" para hacer esto:
fuente