what rails ruby-on-rails cucumber webrat capybara

ruby-on-rails - what - rails 5 rspec



¿Cómo puedo ver qué capibara se encuentra en un paso de pepino que falla? (7)

Intenta agregar este paso:

Then show me the page

Comencé a migrar de cucumber + webrat a cucumber + capybara. Ahora el comportamiento de "debería ver" parece ser algo diferente. La mayoría de estos fallan ahora, aunque no cambié nada en la página. Reemplacé el fragmento que debería encontrarse con algunas cosas que se encuentran en cada página y para algún texto funciona y para otro texto no. No puedo encontrar ningún patrón en lo que se encuentra en el contenido de la página y en lo que no. Webrat solía imprimir el contenido de la página que encontró, en caso de que no contuviera la frase requerida. ¿Hay alguna forma de que Capybara muestre qué texto obtuvo de la página en la que trató de encontrar el texto?


Si desea que el navegador abra la página cuando falla la página, use la gema ''launchy''. Agréguelo a su archivo gem, y luego en / features / support cree un archivo llamado debugging.rb con contenido:

After do |scenario| save_and_open_page if scenario.failed? end


Si está utilizando Javascript o Ajax en sus páginas y quiere ver lo que está pasando, he descubierto que el controlador Poltergeist es muy bueno al permitirle ingresar al DOM y descubrir qué está mal.

Si configura su controlador Capybara con la opción de depuración remota:

Capybara.register_driver :poltergeist do |app| Capybara::Poltergeist::Driver.new(app, inspector: true) end

A continuación, puede poner la siguiente línea en sus pasos:

page.driver.debug

Lo que activa un nuevo navegador Chromium con el estado actual de DOM establecido, lo que le permite acceder a la consola. (En mi versión de Linux, tuve que hacer un enlace simbólico de cromo a cromo-navegador pero por lo demás funcionó bien).

Fuente de información: http://jonathanleighton.com/articles/2012/poltergeist-0-6-0/


Siempre se puede tener una captura de pantalla cuando algo falla. Depuré muchas características fallidas de esa manera.


También puede usar "Entonces muéstrame la respuesta" que envía el HTML a la consola si no quieres usar un navegador.


Then show me the page llamadas al método subyacente save_and_open_page webrat / capybara. Encontrado útil cuando se trabaja con carne.


Then show me the response no me funcionó con el pepino 1.1. Me pareció útil escribir un paso usando el comando de capybara:

print page.html

Esto da salida al estado actual del DOM