Sto scrivendo le specifiche della richiesta ... Io uso Capibara ... E sono nei guai con alcune finestre modali.(Capybara) finestra modale di accesso
Quello che voglio veramente nel mio test è compilare un modulo che si apre in una finestra modale.
La modale viene creata con Bootstrap da Twitter (http://twitter.github.com/bootstrap/javascript.html#modals) ... e sta attraversando un insieme di transizioni (ma non so se questo è rilevante per quello che sto per dire).
ho provato un paio di soluzioni che ho trovato sul web, come:
A) il passaggio tra le pagine con page.driver.browser.window_handles
page.driver.browser.switch_to.window(page.driver.browser.window_handles.last)
B) utilizzando wait_until
per assicurarsi che i carichi modali
def modal_wrapper_id
'#modal-edit'
end
def modal_visible
wait_until { find(modal_wrapper_id).visible? }
rescue Capybara::TimeoutError
flunk 'Expected modal to be visible.'
end
ma nessuno di quelli ha funzionato ... quindi ho pensato di rendere il numero di handle di finestra nel momento in cui la finestra modale è attiva ...
Quindi ho fatto questo:
puts page.driver.browser.window_handles.length.should == 2
E ho ottenuto questo:
Failure/Error: page.driver.browser.window_handles.length.should == 2
expected: 2
got: 1 (using ==)
Da quello che ho capito, in pratica la mia finestra modale non esiste.
Qualsiasi aiuto su questo sarebbe molto apprezzato.
Grazie.
Sto usando il selenio! 'Capybara.default_driver =: selenium' – adritha84
Ok, non l'hai menzionato nel tuo post. Dal momento che non vedo nulla di sbagliato, mi assicurerei di invocare realmente quel pop-up nella tua suite di test (facendo clic su qualcosa, ecc., Non conosco la logica aziendale). Inoltre puoi mettere un po 'di sonno 10 dopo l'azione di "richiamo pop-up", solo a scopo di test. – socjopata
Ho inserito alcune azioni 'sleep' nelle mie specifiche e l'ho testato in molti modi ... e, come hai detto, non vedo niente di sbagliato neanche ... Ma ancora, ottengo l'errore specificato, il che significa che l'handle di quella finestra modale non esiste, quindi la finestra non esiste. – adritha84