0

В моем угловом тестировании e2e я хотел бы узнать, существует ли элемент в DOM, это не тестовое ожидание, просто условие, в котором я нуждаюсь.AngularJs E2E как проверить, существует ли элемент в DOM

Я пытался сделать

element(".logout-button:visible").count() > 0 

но count() возвращает будущее и не будет работать за пределами expect(). Кажется, что нет способа добавить обратный вызов, когда он будет разрешен.

Я пытался сделать

element(".logout-button:visible").query(element, callback) 

Но это один бросает исключение, когда элемент не существует, не заботясь, чтобы войти в мою функцию обратного вызова. Итак, как мне достичь этой довольно простой задачи?

Спасибо!

ответ

1

Увидев, что сценарий с угловым расстройством содержит JQuery, вы можете проверить конкретное условие с помощью jQuery.

if($('#some-element:visible').length){ 
    //do something 
} 

В качестве альтернативы, вы можете выполнить спящий() тест, пока не узнаете, что условие выполнено. Например:

element('#some-button').click(); 
sleep(10); 
expect(element('#new-element:visibile').count()).toBe(1); 
+0

Спасибо за ответ. Я дам jquery попробовать, но я не совсем уверен, что это сработает, потому что я не уверен, работает ли он с циклом рендеринга углов. Это приводит к вашей второй альтернативе, которая использует sleep(), чего мы бы хотели избежать. Это замедляет приложение и вводит некоторую случайность (потому что вы никогда не знаете, сколько времени достаточно для ожидания). – KailuoWang

Смежные вопросы