Piszę testy funkcjonalne i radzę sobie z oknem modalnym, które znika i znika.W Geb, jaka jest różnica między wyświetlaną a obecną?
Jaka jest różnica między wyświetlaną a obecną?
Na przykład mam:
settingsModule.container.displayed and settingsModule.container.present
gdzie settingsModule reprezentuje moje okno modalne.
Podczas testowania moje okno modalne (modal z bootstrap z Twittera), zazwyczaj to zrobić:
def "should do ... "() {
setup:
topMenu.openSettingsModal()
expect:
settingsModule.timeZone.value() == "Asia/Hong_Kong"
cleanup:
settingsModule.closeSettingsModal()
}
def "should save the time zone"() {
setup:
topMenu.openSettingsModal()
settingsModule.timeZone = "Japan"
when:
settingsModule.saveSettings()
then:
settingsModule.alertSuccess.size() == 1
settingsModule.alertSuccess.text() == "Settings updated"
when:
settingsModule.saveSettings()
then:
settingsModule.alertSuccess.size() == 1
cleanup:
settingsModule.closeSettingsModal()
}
i tak dalej. W moich modułach mam:
void openSettingsModal() {
username.click()
settingsLink.click()
}
void closeSettingsModal() {
form.cancel().click()
}
Zawsze otrzymuję skargę: "Element musi być wyświetlony, aby kliknąć".
W moim openSettingsModal i closeSettingsModal, wypróbowałem wiele kombinacji waitFor z interwałem czasowym i używaniem present or not ... Nie mogę tego rozgryźć.
Wszelkie wskazówki byłyby bardzo cenne. Dzięki!
Próbowałem Twojego rozwiązania, ale nie działało. Proponowane przeze mnie rozwiązanie idzie w tym samym kierunku z kilkoma poprawkami. Dziękuję Ci! – ontk