atesting.ru Блог Команды ожидания Selenium — неявное, явное, плавное ожидание | Учебное пособие по Selenium WebDriver

Команды ожидания Selenium — неявное, явное, плавное ожидание | Учебное пособие по Selenium WebDriver

Команды Selenium Wait играют важную роль при выполнении тестов Selenium. Давайте посмотрим на различные команды ожидания, такие как « Неявные » и « Явные » команды ожидания в селене.

При выполнении скриптов иногда мы можем столкнуться с исключением « Element Not Visible Exception «. Это исключение возникает, когда есть задержка во времени загрузки элементов, с которыми мы взаимодействуем. Чтобы решить эту проблему, нам нужно использовать команды ожидания. Используя команды ожидания Selenium, наш сценарий будет ждать загрузки элементов в течение определенного времени, прежде чем перейти к следующему шагу.

Различные типы команд ожидания Selenium:

  1. Неявное ожидание
  2. Явное ожидание — WebDriverWait
  3. FluentWait

Неявное ожидание:

Неявное ожидание сообщает WebDriver'у ждать определенное количество времени, прежде чем он вызовет исключение. Как только мы установим время, WebDriver будет ждать элемента в соответствии с установленным нами временем, прежде чем он выдаст исключение. Значение по умолчанию — 0 (ноль). Нам нужно установить время ожидания, чтобы WebDriver ждал необходимое время.

Примечание. Неявное ожидание действует все время, пока браузер открыт. Время, затрачиваемое на поиск всех элементов, основано на времени, установленном для неявного ожидания.

Синтаксис:

1 driver.manage (). timeouts (). implicitlyWait (TimeOut, TimeUnit.SECONDS);

Неявное ожидание время применяется ко всем элементам в скрипте.

Неявное ожидание принимает 2 параметра, первый параметр принимает время как целое число, а второй параметр принимает измерение времени в секундах, МИНУТЫ, МИЛИСЕКУНДЫ, МИКРОСЕКУНД, НАНОСЕКУНД, ДНИ, ЧАСЫ и т. Д.

Завершите публикацию о неявных ожиданиях с примером.

Явное ожидание:

Явные ожидания ограничены конкретным веб-элементом. Явное ожидание — это код, который вы определяете для ожидания возникновения определенного условия, прежде чем продолжить работу в коде.

Явное ожидание бывает двух типов:

  1. WebDriverWait
  2. FluentWait

WebDriverWait:

WebDriverWait применяется к определенному элементу с определенным ожидаемым условием и < em> время . Это ожидание применяется только к указанному элементу. Это ожидание также может вызвать исключение, если элемент не найден.

Ниже приведены ожидаемые условия, которые можно использовать в явном ожидании

  1. alertIsPresent ()
  2. < li> elementSelectionStateToBe ()

  3. elementToBeClickable ()
  4. elementToBeSelected ()
  5. frameToBeAvaliableAndSwitchToIt ()
  6. invisibilityOfTheElementLocated ()
  7. < li> invisibilityOfElementWithText ()

  8. присутствиеOfAllElementsLocatedBy ()
  9. присутствиеOfElementLocated ()
  10. textToBePresentInElement ()
  11. textToBePresentInElementLocated ()
  12. textToBePresentInElementValue ()
  13. titleIs ()
  14. titleContains ()
  15. visibilityOf ()
  16. visibilityOfAllElements ()
  17. visibilityOfAllElementsLocatedBy ()
  18. visibilityOfElementLocated ()

Синтаксис:

123 //WebDriverWait wait = new WebDriverWait (WebDriverRefrence, TimeOut); WebDriverWait wait = new WebDriverWait (driver, 20); wait.until (ExpectedConditions.VisibilityofElementLocated (By.xpath (& # 34; & # 34; //кнопка [@value = & # 39; Сохранить изменения & # 39;] & # 34; & # 34;)));

< p> Завершите публикацию на WebDriverWait примером.

FluentWait:

FluentWait может определить максимальное время ожидания определенного условия и частоту, с которой нужно проверять условие, прежде чем генерировать исключение « ElementNotVisibleException ».

То есть без особых усилий: он пытается найти веб-элемент повторно через равные промежутки времени, пока не истечет время ожидания или пока объект не будет найден.

Мы используем команды Fluent Wait в основном, когда у нас есть веб-элементы, которые иногда видны через несколько секунд, а иногда требуется больше времени, чем обычно, чтобы стать видимым. В основном в приложениях Ajax.

Синтаксис:

12345678910 Wait wait = new FluentWait (ссылка на WebDriver) .withTimeout (тайм-аут, СЕКУНДЫ) .pollingEvery (тайм-аут, СЕКУНДЫ) .ignoring (Exception.class); WebElement foo = wait.until (new Function & lt; WebDriver, WebElement & gt; () {public WebElement applyy (драйвер WebDriver) {return driver.findElement (By.id (& # 34; foo & # 34;));}});

Пример:

1234 Wait wait = new FluentWait & lt; WebDriver & gt; (драйвер) .withTimeout (45, TimeUnit. SECONDS) .pollingevery (5, TimeUnit.SECONDS) .ignoring (NoSuchElementException.class);

Fluent Wait использует два параметра — значение тайм-аута и частоту опроса. В приведенном выше синтаксисе мы взяли значение тайм-аута как 45 секунд, а частоту опроса как 5 секунд.
Максимальное время (45 секунд) для ожидания условия и частота (5 секунд) для проверки успешности или неудачи указанного состояния. Если элемент находится в этом временном интервале, он будет выполнять операции, иначе он выдаст «ElementNotVisibleException»

Завершите публикацию на Fluent Wait с примером.

Если вы не являетесь постоянным читателем моего блога, я настоятельно рекомендую вам подписаться на бесплатную рассылку новостей по электронной почте, используя приведенную ниже ссылку.

Подпишитесь и получайте бесплатную электронную книгу и регулярные обновления от SoftwareTestingMaterial.com

TAG: qa