Команды ожидания 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()
Синтаксис:
123 | //WebDriverWait wait = new WebDriverWait(WebDriverRefrence,TimeOut);WebDriverWait wait = new WebDriverWait (драйвер, 20);wait.until(ExpectedConditions.VisibilityofElementLocated(By.xpath(“”//button[@value='Сохранить изменения']””))); таблица>
<блочная цитата> Заполните публикацию на WebDriverWait с примером. FluentWait: FluentWait может определить максимальное время ожидания определенного условия и частоту проверки состояния до генерирует исключение «ElementNotVisibleException». Если говорить без усилий, он пытается повторно найти веб-элемент через равные промежутки времени, пока не истечет время ожидания или пока объект не будет найден. <р>Мы используем команды Fluent Wait в основном, когда у нас есть веб-элементы, которые иногда видны через несколько секунд, а иногда требуется больше времени, чем обычно. В основном в приложениях Ajax. Синтаксис:
Пример:
Fluent Wait использует два параметра – значение времени ожидания и частоту опроса. В приведенном выше синтаксисе мы взяли значение времени ожидания как 45 секунд и частоту опроса как 5 секунд.
Если если вы не являетесь постоянным читателем моего блога, я настоятельно рекомендую вам подписаться на бесплатную рассылку новостей по электронной почте, используя ссылку ниже. Подпишитесь и получите бесплатную электронную книгу и регулярные обновления с сайта SoftwareTestingMaterial.com. |