2015-06-03 1 views
4

Я пытаюсь проверить, если элемент Angular ng-if виден или не используется Geb. До сих пор я пытался проверить, является ли отображаемое свойство истинным или ложным следующим образом.Тестирование Угловое динамическое содержимое страницы (ng-if) с помощью Geb

Угловой:

<article ng-if="!condition" class="bar foo ng-scope">Text to Display</article> 

Геб UI Модуль:

unselectedErrorText { $(class: "bar foo ng-scope") } 

Тест:

assertThat(unselectedErrorText.displayed).isFalse() 
checkBox.value()==false 
assertThat(unselectedErrorText.displayed).isTrue() 

Я получаю следующее сообщение об ошибке:

The required page content 'unselectedErrorText - SimplePageContent' is not present 

Спасибо заранее!

ответ

0

Что я пропустил, так это то, что Угловой код генерирует динамическое содержимое страницы. Geb(through the underlying selenium) will just have the initial DOM before any JavaScript manipulation is performed.

Я решил это с использованием метода waitFor, предоставленного Geb.

checkbox.value(false) 
waitFor("quick") { 
    assertThat(unselectedErrorText.displayed).isTrue() 
} 

Любое дальнейшее, более полное объяснение очень ценится!

+0

Я делаю то же самое для любого динамического контента. –