Элемент DOM Geb Test существует, а затем удаляется на следующей странице
Я довольно новичок в Geb, но я сталкиваюсь со странной проблемой, которую документы, похоже, не решают. У меня есть довольно простой сценарий для тестирования: войдите в систему как администратор, откройте приложения, убедитесь, что кнопка "Применить" появляется на домашней странице. Затем закройте приложения и убедитесь, что кнопка ушла с домашней страницы. Я могу выполнить этот тест вручную с успехом, и на стороне сервера (с точки зрения кэша) нет ничего, что мешало бы его успешному выполнению, но когда я запускаю тест через Gradle, он не проходит, потому что кнопка все еще отображается на домашней странице после "закрытия" тестовое задание. Обратите внимание, что тест также проверяет, что конфигурация была сохранена с правильным значением.
Вот мой тестовый код:
def "can open applications"(){
when:
to ManageConfigPage
and:
configFormModule.toggleApplications(true)
then:
at ManageConfigPage
assert $('#messages').text() == "Config successfully updated"
assert $('td', text: 'config.application_closed').closest('tr').find('input').value() == "0"
then:
to HomePage
assert applyButton
}
def "can close applications"(){
when:
to ManageConfigPage
and:
configFormModule.toggleApplications(false)
then:
at ManageConfigPage
assert $('#messages').text() == "Config successfully updated"
assert $('td', text: 'config.application_closed').closest('tr').find('input').value() == "1"
then:
to HomePage
assert !applyButton
}
Вот определение содержимого applyButton:
applyButton(cache: false, required: false){ $('#apply_button') }
Я также попытался использовать селектор непосредственно в тесте, а не внутри определения контента, и это тоже не сработало.
Так что здесь происходит? Кэшируется ли домашняя страница целиком? Если так, как я могу предотвратить или обновить это? Это похоже на Geb 101, но руководство не решает эту проблему.
Изменить: добавив результат теста для полноты:
Условие не выполнено:
! applyButton || | applyButton - SimplePageContent (владелец: HomePage, аргументы: [], значение: ноль) false
at AdminSpec.can close applications(AdminSpec.groovy:59)
1 ответ
Элемент кнопки не включен в HTML или просто скрыт? Если он скрыт, вам нужно убедиться, что он не отображается:
!applyButton.displayed