Я довольно новичок в Geb, но мне грозит нечетная проблема, с которой документы, похоже, не обращаются. У меня довольно простой сценарий тестирования: войдите в систему как администратор, откройте приложения, убедитесь, что на домашней странице отображается кнопка «применить». Затем закройте приложения и убедитесь, что кнопка ушла с домашней страницы. Я могу выполнить этот тест вручную с успехом, и нет ничего на стороне сервера (кеш-мудрый), чтобы это не удалось, но когда я запускаю тест через Gradle, он терпит неудачу, потому что кнопка все еще отображается на домашней странице после закрытия, контрольная работа. Обратите внимание, что тест также проверяет, что конфиг сохранен с правильным значением.Geb Test DOM Element существует, а затем удаляется на следующей странице Загрузка
Вот мой тестовый код:
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, но руководство действительно не решает эту проблему.
Edit: добавление результата теста на полноту:
Состояние не удовлетворены:
applyButton || | applyButton - SimplePageContent (владелец: HomePage, арг: [], значение: нуль) ложные
at AdminSpec.can close applications(AdminSpec.groovy:59)
Я добавил спать (5000), прежде чем переходить на эту страницу, и работает так, как ожидалось. Это не обязательно, но это работает. –