В данной статье мы познакомимся с тем, как использовать различные команды ожидания в 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».
