Sto provando a testare una finestra di dialogo di conferma JS con Cucumber on Rails. Ho un gestore di eventi window.onbeforeunload che ti chiederà una finestra di dialogo di conferma se tenti di allontanarti dalla pagina ma non ho idea di come testarlo, qualcuno ha un'idea su come questo può essere fatto?Cetriolo + test Avviso JS
risposta
ci sono diverse funzioni di selenio è possibile utilizzare per catturare avvisi/conferma essi non sono direttamente disponibili con l'attuazione di selenio Webrat, ma quando si utilizza di Webrat config.mode = :selenium
possono essere utilizzati come segue:.
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();
Probabilmente non ci sono i test migliori, ma ti dà un'idea Internamente il selenio sovrascrive le funzioni alert() e confirm() di JS in modo che possa acquisire queste informazioni.
Potete trovare ulteriori documenti sul selenium faq o sul server gioiello
È possibile utilizzare Webrat o selenio con cetriolo per verificarlo.
La mia ipotesi è che si desidera Browser simulato o test del browser automatizzato,
È possibile utilizzare Webrat o Webrat :: selenio o semplicemente selenio con cetrioli in questi casi.
Ho provato questo utilizzando Selenium e Cetriolo prima, ma non riesco a trovare il codice, modificherò il post se lo faccio.
HTH
mi consiglia di utilizzare per il test screw-unit javascript comportamento in una pagina. Puoi anche dare un'occhiata al plugin blue-ridge di Relevance che incorpora un'unità vite e aggiunge il supporto per la riga di comando e nei test del browser js. Puoi trovarlo su github sotto rilevanza/blue-ridge. (Non ho ancora il rappresentante per pubblicare più di un link :(
Sarebbe un esercizio interessante utilizzare unità a vite e/o blu-ridge per guidare test di cetriolo, e probabilmente non così difficile da tirare . off
Vedi le definizioni dei metodi in http://selenium-client.rubyforge.org/classes/Selenium/Client/Idiomatic.html
Si possono richiamare con l'oggetto di supporto di selenio nelle definizioni Cucumber step - ad esempio,
Then /^I should see a JS confirm dialog saying "([^\"]*)"$/ do |statement|
selenium.confirmation.should eql(statement)
end
This gist ha gradini per testare una finestra di conferma JS in Rails 2 e 3 con qualsiasi driver Capybara, dovrebbe essere facile da adattare a una finestra di avviso.
- 1. Cetriolo + test paralleli. Risultati HTML?
- 2. Dati dei semi nei test di cetriolo
- 3. Esegui test di cetriolo su heroku
- 4. REST API test cetriolo passi best practice
- 5. Node.js BDD. Cetriolo, cetriolo o cetriolo?
- 6. Come si modifica il driver di test predefinito per un test di Cetriolo in Capybara?
- 7. jquery/js speed test
- 8. Test Highcharts (libreria JS charting) con Cucumber
- 9. cetriolo capybara come funziona
- 10. Test di integrazione vs accettazione ... che cos'è Cetriolo/Bistecca?
- 11. Come eseguire i test cetriolo-jvm utilizzando Gradle
- 12. cetriolo + Capybara test per garantire una nuova finestra viene aperta
- 13. Esecuzione di test di cetriolo su diversi ambienti
- 14. Test cetriolo/capibara non più eseguito nel progetto Rails 3
- 15. I test di cetriolo falliscono con `stream closed (IOError)`
- 16. test di selenio, capibara e cetriolo drag and drop testing
- 17. Test di un'attività di rake in rspec (e cetriolo)
- 18. Come simulare/stubare un modello nei test di Cetriolo
- 19. L'ultima versione di cetriolo-java e cetriolo-junit non funziona
- 20. Cetriolo per applicazione PHP
- 21. cetriolo reindirizzare
- 22. Riutilizzo Cetriolo passi
- 23. Scoping una trasformazione in cetriolo
- 24. data factory per cetriolo, watir
- 25. Come integrare Primavera in cetriolo
- 26. Funzione sleep in Capybara/Cetriolo?
- 27. Test JS se multipli di 10
- 28. cetriolo contro RSpec
- 29. Parametro facoltativo nel cetriolo
- 30. Cetriolo con TestNG
Se non si desidera utilizzare 'selenium.chooseOkOnNextConfirmation()' è possibile utilizzare 'selenium.get_alert' per consumare l'avviso dopo aver chiamato' selenium.is_alert_present'. Se non fai nessuna di queste cose, la tua prossima dichiarazione di selenio fallirà a causa dell'avviso in sospeso. – Loktar