2012-06-14 9 views
5

Estamos intentando desactivar un determinado botón de envío después de haciendo clic en él. Algo como esto:¿Cómo se prueba que se desactive el botón Enviar después de hacer clic en capibara?

assert !page.has_css?("#review_button[disabled='disabled']") 
click_button "Review" 
assert page.has_css?("#review_button[disabled='disabled']") 

El problema, por supuesto, es que la forma se somete antes de comprobar la segunda afirmación. ¿Hay alguna manera de desactivar el envío real del formulario o suspenderlo hasta después de verificar la segunda afirmación?

Respuesta

1

Recuerdo que tuve este problema y nunca encontré una buena manera de hacerlo, porque como dijiste, solo llega a la siguiente afirmación cuando la acción "Revisar" finaliza.

Lo que terminé haciendo, teniendo en cuenta que la acción que hizo el botón tomó mucho tiempo (y justifica que el botón esté desactivado) es hacer que la acción cree un trabajo de trabajo diferido y luego dejar que se ejecute de forma asincrónica. Entonces es bastante fácil burlarse de eso y hacerlo dormir por unos segundos (o lo que sea) para verificar que el botón esté desactivado.

+0

¿Cómo podría ser el código para el trabajo 'Delayed Job', y dónde lo hace? Perdón por preguntar uno básico, pero soy bastante nuevo en las pruebas de capibara. – samjewell

Cuestiones relacionadas