Команды ожидания Selenium играют важную роль при выполнении тестов Selenium. Давайте рассмотрим различные команды ожидания, такие как «Неявные» и «Явные» команды ожидания в селене.
Во время выполнения скриптов иногда может возникать исключение «Element Not Visible Exception». Это исключение появляется, когда есть задержка во времени загрузки элементов, с которыми мы взаимодействуем. Чтобы решить эту проблему, нам нужно использовать команды ожидания. Используя команды ожидания Selenium, наш скрипт будет ожидать загрузки элементов в течение определенного времени, прежде чем перейти к следующему шагу.
Различные типы команд ожидания Selenium:
- Неявное ожидание
- Явное ожидание — WebDriverWait
- FluentWait
Неявное ожидание:
Неявное ожидание указывает WebDriver подождать определенное время, прежде чем он выдаст исключение. Как только мы установим время, WebDriver будет ожидать элемент в зависимости от времени, которое мы установили, прежде чем сгенерировать исключение. По умолчанию установлено значение 0 (ноль). Нам нужно установить некоторое время ожидания, чтобы WebDriver ждал необходимое время.
Примечание. Неявное ожидание действует все время, пока браузер открыт. Время, необходимое для поиска всех элементов, основано на времени, установленном для неявного ожидания.
Синтаксис:
1 | driver.manage().timeouts().implicitlyWait(TimeOut, TimeUnit.SECONDS); |
Неявное время ожидания применяется ко всем элементам в скрипте.
Неявное ожидание будет принято 2 параметра, первый параметр будет принимать время как целочисленное значение, а второй параметр будет принимать измерение времени в СЕКУНДАХ, МИНУТАХ, МИЛИСЕКУНД, МИКРОСЕКУНД, НАНОСЕКУНД, ДНЯХ, ЧАСАХ и т. д.
Полная публикация о неявных ожиданиях с примером.
Явное ожидание:
Явные ожидания ограничены конкретным веб-элементом. Явное ожидание — это код, определяемый вами для ожидания выполнения определенного условия, прежде чем продолжить работу в коде.
Явное ожидание бывает двух типов:
- WebDriverWait
- FluentWait
WebDriverWait:
WebDriverWait применяется к определенному элементу с заданными ожидаемыми условиями и временем. Это ожидание применяется только к указанному элементу. Это ожидание также может вызвать исключение, если элемент не найден.
Ниже приведены ожидаемые условия, которые можно использовать в явном ожидании
- alertIsPresent()
- elementSelectionStateToBe()
- elementToBeClickable()
- elementToBeSelected()
- frameToBeAvaliableAndSwitchToIt()
- invisibilityOfTheElementLocated ()
- invisibilityOfElementWithText()
- presenceOfAllElementsLocatedBy()
- presenceOfElementLocated()
- textToBePresentInElement()
- textToBePresentInElementLocated()
- textToBePresentInElementValue()
- titleIs()
- titleContains()
- видимость()
- visibleOfAllElements()
- visibilityOfAllElementsLocatedBy()
- visibilityOfElementLocated()
Синтаксис: