2016-01-11 1 views
0

Я довольно новичок в 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) 

ответ

0

кнопка элемент не входит в HTML или просто скрыты? Если он скрыт, вам нужно будет убедиться, что он не отображается:

!applyButton.displayed 
+0

Я добавил спать (5000), прежде чем переходить на эту страницу, и работает так, как ожидалось. Это не обязательно, но это работает. –