Как реализовать ожидание скрытия/появления элемента на странице (Selenium WebDriver, C#)

Как реализовать ожидание скрытия/появления элемента на странице в (Selenium WebDriver, C#)
В процессе написания автоматических тестов я столкнулся с проблемой, когда необходимо было дождаться скрытия какого-либо элемента и далее продолжить выполнение тестов. К примеру, нажимается кнопка и сервис выполняя какие-либо действия показывает временно панель прогресса, чтобы пользователь не думал, что всё зависло. Если не поставить ожидание скрытия данной панели, то автоматические тесты попытаются продолжиться без ожидания. Что в этом случае произойдёт? Правильно, тесты будут провалены, так как остальные элементы страницы недоступны, пока поверх всего находится панель отображающая прогресс выполнения текущей операции.

В итоге нашлось простое решение, которое и предлагаю вашему вниманию. Мы создадим функцию, в которую будем передавать свойство элемента, скрытие/появление которого мы ожидаем.

Для того, чтобы корректно всё работало нам необходимо подключить следующее:

Если вы уже пишите тесты на Selenium WebDriver, то вы знаете, что поиск элемента происходит следующим образом:

Поиск можно проводить по «Id», «ClassName», «CssSelector» и т.д. В наши функции ожидания мы и будем передавать класс «By» с одним из этих элементов. Теперь рассмотрим на примерах функции ожидания скрытия появления элементов на странице.

Функция ожидания скрытия элемента на странице:

Функция ожидания появления элемента на странице:

Как видим функции отличаются только параметрами «InvisibilityOfElementLocated» и «ElementIsVisible». В функциях прописано время ожидания 30 секунд, вы можете это время задавать самостоятельно. Функции ждут не исчезновения или появления элементов в коде страницы, а именно визуального исчезновения и появления.

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

Теперь рассмотрим, как можно применить функции скрытия/ожидания элементов:

И ещё пара примеров, для тех, кто использует при написании автоматических тестов фреймворк «NUnit». Приведу примеры проверки видимости элементов, а не ожидания. Обязательно надо подключить «NUnit.Framework»:

Проверяем, что элемент невидимый (исчез):

Проверяем, что элемент видимый:

  • Понравилось? Добавьте в избранное или поделитесь с друзьями:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *