Я пишу функциональные тесты и имею дело с модальным окном, которое появляется и исчезает.
В чем разница между отображаемым и присутствующим?
Например, у меня есть:
settingsModule.container.displayed and settingsModule.container.present
где settingsModule представляет мое модальное окно.
При тестировании моего модального окна (модальное из начальной загрузки Twitter) я обычно делаю это:
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()
}
и так далее. В моих модулях у меня есть:
void openSettingsModal() {
username.click()
settingsLink.click()
}
void closeSettingsModal() {
form.cancel().click()
}
Я всегда получаю жалобу: «Элемент должен отображаться, чтобы щелкнуть».
В моих openSettingsModal и closeSettingsModal я пробовал множество комбинаций waitFor с временным интервалом и с использованием настоящего или нет ... Не могу понять.
Любые указатели будут высоко оценены. Спасибо!