Элемент 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
Другие вопросы по тегам