В данной статье мы познакомимся с тем, как использовать различные команды ожидания в Selenium. Рассмотрим такие типы команд, как andWait и waitFor.
Примечание редакции: у нас есть еще одна полезная статья по этой теме – “Ожидания в Selenium для автоматизации тестирования”.
Подпишитесь на наш ТЕЛЕГРАМ КАНАЛ ПО АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ
Команды andWait
Это команды, благодаря которым Selenium будет ждать загрузки новой страницы, прежде чем перейти к следующей команде.
Примерами являются:
- clickAndWait
- typeAndWait
- selectAndWait
Первый тест прошел, потому что была использована команда clickAndWait
. Selenium сначала подождал загрузки новой страницы, а потом выполнил команду assertTitle
.
Второй тест провалился, потому что была использована команда click. Selenium выполнил команду assertTitle
, не ожидая загрузки новой страницы.
Команды waitFor
Это команды, благодаря которым Selenium будет ждать выполнения заданного условия перед переходом к следующей команде (независимо от загрузки новой страницы). Такие команды целесообразнее использовать на динамических сайтах, основанных на AJAX, которые изменяют значения и элементы без перезагрузки всей страницы. Примерами могут служить:
- waitForTitle
- waitForTextPresent
- waitForAlert
Рассмотрим приведенный ниже сценарий для Facebook:
Выделенный красным блок появляется после нажатия на ссылку “Why do I need to provide my birthday?”. Обратите внимание: блок появляется без перезагрузки страницы.
Мы можем использовать комбинацию click
и waitForTextPresent
для проверки наличия текста “Providing your birthday”:
Мы не можем использовать clickAndWait
, поскольку при нажатии на ссылку “Why do I need to provide my birthday?” страница не загружалась. Если мы это сделаем, тест будет провален:
Резюме
Команды ожидания в Selenium делятся на две категории: andWait и waitFor. Первые используются, когда ожидается загрузка страницы. Вторые – когда загрузка новой страницы не ожидается.
Перевод второй части статьи «Verify Element Present & waitFor Command in Selenium».