Estoy tratando de probar un diálogo de confirmación JS con Cucumber on Rails. Tengo una ventana. Antes de descargar el controlador de eventos que te indicará un cuadro de diálogo de confirmación si tratas de salir de la página pero no tengo idea de cómo probarlo, ¿alguien tiene una idea de cómo se puede hacer esto?Pepino + prueba alerta JS
Respuesta
Hay varias funciones de selenio puede utilizar para capturar alertas/confirma ellos no están disponibles directamente con la implementación de selenio webrat, pero cuando de webrat config.mode = :selenium
que se puede utilizar como sigue usando:.
Then /^I should see a JS alert$/ do
selenium.is_alert_present.should be_true
end
# or
Then /^I should see a "Are you sure?" JS confirm dialog$/ do
selenium.get_alert.should eql("Are you sure?")
end
# you can also click the OK/Cancel buttons on confirm boxes with
selenium.chooseOkOnNextConfirmation();
#and
selenium.chooseCancelOnNextConfirmation();
Probablemente no sean las mejores pruebas, pero te da una idea. internamente el selenio anula las funciones de alerta() y confirmación() de JS para que pueda capturar esta información.
Puede encontrar más documentos sobre el selenium faq o en el servidor de la gema
Puede usar Webrat o Selenio con pepino para probar esto.
Mi conjetura es que desea navegador simulado o pruebas del navegador automatizado,
Puede utilizar Webrat o Webrat :: Selenio El selenio o simplemente con el pepino en tales casos.
He probado esto usando Selenium and Cucumber antes, pero parece que no puedo encontrar el código, y edito la publicación si lo hago.
HTH
yo recomendaría usar screw-unit Javascript para probar el comportamiento en una página. También puede echar un vistazo al complemento blue-ridge de Relevance, que incorpora una unidad de tornillo y agrega soporte para la línea de comandos y en las pruebas js del navegador. Puedes encontrarlo en github en relevancia/blue-ridge. (Todavía no tengo el representante para publicar más de un enlace :(
Sería un ejercicio interesante usar la unidad de tornillo y/o el borde azul para conducir las pruebas de pepino, y probablemente no tan difícil de tirar . off
Ver las definiciones de métodos de http://selenium-client.rubyforge.org/classes/Selenium/Client/Idiomatic.html
Puede invocar con el objeto ayudante selenio en sus definiciones paso Pepino - por ejemplo,
Then /^I should see a JS confirm dialog saying "([^\"]*)"$/ do |statement|
selenium.confirmation.should eql(statement)
end
This gist tiene pasos para probar un diálogo de confirmación JS en los carriles 2 y 3 con cualquier conductor capibara, debe ser fácil de adaptar a un cuadro de alerta.
- 1. Prueba de estrés usando pepino
- 2. archivo de prueba de pepino descarga
- 3. ¿Cómo se cambia el controlador predeterminado de prueba para una prueba de pepino en Capibara?
- 4. pepino
- 5. código JS de depuración que desencadena una alerta()
- 6. Pepino: cómo organizar un conjunto de prueba complejo
- 7. La ejecución de JavaScript desde un pepino/Carpincho prueba
- 8. automatización de escenarios de prueba de pepino para MySQL
- 9. Prueba de una tarea de rake en rspec (y pepino)
- 10. Cómo se burlan/ramal en un modelo pepino prueba
- 11. JS prueba si es múltiplo de 10
- 12. Prueba de Highcharts (biblioteca de gráficos JS) con Cucumber
- 13. Pepino/Capibara vs Selenio?
- 14. capibara de pepino ¿cómo funciona?
- 15. Pepino BeforeStep
- 16. Reutilizar Pasos de pepino
- 17. Pepino (rieles 2) no está cargando jQuery
- 18. Requerimiento de archivo js externo para prueba de mocha
- 19. Pepino y Rspec compartiendo fábrica de fábricas
- 20. Pepino y Rspec
- 21. ruby-debug and pepino
- 22. Pepino + paralelo_prueba. Resultados HTML?
- 23. Seed data in pepino tests
- 24. ReferenceError: "alerta" no está definido
- 25. ¿Dónde puedo aprender Pepino en detalle?
- 26. ¿Cómo configuro la ruta a mis funciones de pepino usando pepino-junit?
- 27. TDD/BDD Rails Duplicación de pepino/RSpec
- 28. Orden de elementos de la prueba de pepino en la tabla
- 29. Prueba de pepino/capibara ya no se ejecuta en el proyecto de Rails 3
- 30. Cómo agregar la primera prueba de pepino a una aplicación de Rails
Si no desea usar 'selenium.chooseOkOnNextConfirmation()' puede usar 'selenium.get_alert' para consumir la alerta después de llamar a' selenium.is_alert_present'. Si no hace ninguna de estas cosas, su próxima declaración de selenio fallará debido a la alerta pendiente. – Loktar