atesting.ru Блог WebDriverWait в Selenium | Учебное пособие по Selenium WebDriver

WebDriverWait в Selenium | Учебное пособие по Selenium WebDriver

Selenium WebDriverWait — это одно из явных ожиданий.

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

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

  1. WebDriverWait
  2. FluentWait

Щелкните эту ссылку для FluentWait.

WebDriverWait In Selenium:

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

Мы могли бы избежать генерации исключения в Selenium. Проверьте этот пост.

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

  1. alertIsPresent ()
  2. elementSelectionStateToBe ()
  3. elementToBeClickable ()
  4. elementToBeSelected ()
  5. frameToBeAvaliableAndSwitchToIt ()
  6. invisibilityOfTheElementLocated ()
  7. invisibilityOfElementWithText ()
  8. присутствиеOfAllElementsLocatedBy ()
  9. присутствиеOfElementLocated ()
  10. textToBePresentInElement ()
  11. textToBePresentInElementLocated ()
  12. textToBePresentInElementValue ()
  13. textToBePresentInElementValue () 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; & # 34; & # 34; 34; //кнопка [@value = & # 39; Сохранить изменения & # 39;] & # 34; & # 34;)));

Тестовый сценарий с объяснением:

Найдите образец сценария (с использованием Java), упомянутый ниже. Запустите его, чтобы увидеть функциональность.

123456789101112131415161718192021222324252627 пакет ждет; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxD import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; public class ExplicitWaits {public static void main (String [] args) {//Чтобы создать новый экземпляр Firefox Драйвер Драйвер WebDriver = новый FirefoxDriver (); //Чтобы открыть веб-сайт & # 34; Материалы для тестирования программного обеспечения & # 34; driver.get (& # 34; https: //www.softwaretestingmaterial.com"); //Чтобы развернуть окно браузера, driver.manage (). Window (). Maximize (); //Ожидается до 15 секунд перед тем, как сгенерировать исключение TimeoutException, или, если он обнаружит, что элемент вернет его через 0-15 секунд WebDriverWait wait = new WebDriverWait (driver, 15); //Название веб-страницы — & # 34; Материалы для тестирования программного обеспечения — Сайт для тестировщиков программного обеспечения & # 34; wait.until (ExpectedConditions.titleIs (& # 34; Материалы для тестирования ПО — сайт для тестировщиков ПО & # 34;)); //Если вышеуказанное условие выполнено, браузер будет закрыт //Чтобы закрыть браузер driver.close (); //Изменение заголовка & # 34; Материалы для тестирования программного обеспечения — Сайт для тестировщиков программного обеспечения & # 34; как & # 34; xyz & # 34; в скрипте и попробуйте //Вы столкнетесь с выполнением — Исключение в потоке & # 34; main & # 34; org.openqa.selenium.TimeoutException: истекло время ожидания после 20 секунд ожидания заголовка & # 34; Материалы для тестирования ПО — сайт для тестирования ПО & # 34 ;. Текущее название: & # 34; xyz & # 34; }}

Период объединения по умолчанию для неявного и явного ожидания составляет 250 мс. Здесь, в Fluent wait, мы можем изменить период объединения по умолчанию в зависимости от наших требований. Также мы можем игнорировать любое исключение при объединении элемента, такого как исключение «Нет такого элемента».

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

TAG: qa