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.
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