2009-08-10 8 views
15

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

6

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

+0

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

0

È 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

0

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

0

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.