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

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

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

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

Типы явных ожиданий:

  1. WebDriverWait
  2. FluentWait

Здесь мы обсуждаем Selenium FluentWait. Щелкните эту ссылку для WebDriverWait.

Selenium FluentWait:

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

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

Мы используем команды FluentWait в основном, когда у нас есть веб-элементы, которые иногда видны за несколько секунд, а иногда — дольше, чем обычно. В основном в приложениях 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; (driver) .withTimeout (45, TimeUnit.SECONDS) .pollingevery (5, TimeUnit.SECONDS) .ignoring (NoSuchElementException.class);

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

Тестовый сценарий с пояснением — Selenium FluentWait:

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

Java

1234567891011121314151617181920212223242526272829303132333435363738394041 пакет ожидает; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.WebDriver; import org.openqa.selementium; import org.openqa.selementium. .openqa.selenium.firefox.FirefoxDriver; импорт org.openqa.selenium.support.ui.FluentWait; //FluentWait — это класс и часть этого пакета import org.testng.annotations.Test; import com.google.common.base.Function; открытый класс FluentWaitClass {@Test public static void fluentWaitMethod () {System.setProperty (& # 34; webdriver.gecko.driver & # 34;, & # 34; D: //Selenium Environment //Драйверы //geckodriver.exe & # 34 ;); Драйвер WebDriver = новый FirefoxDriver (); driver.get (& # 34; http: //softwaretestingplace.blogspot.com/2017/02/selenium-fluent-wait.html"); driver.findElement (By.xpath (& # 34; //* [@ id = & # 39; post-body-5280210221385817166 & # 39;]/div [1]/button & # 34;)). click (); FluentWait & lt; WebDriver & gt; wait = new FluentWait & lt; WebDriver & gt; (драйвер) .withTimeout (30, TimeUnit.SECONDS) .pollingEvery (5, TimeUnit.SECONDS) .ignoring (NoSuchElementException.class); WebElement element = wait.until (new Function & lt; WebDriver, WebElement & gt; () {public WebElement apply (драйвер WebDriver) {WebElement element = driver.findElement (By.xpath (& # 34; //* [@ id = & # 39 ; softwareTestingMaterial & # 39;] & # 34;)); String getTextOnPage = element.getText (); if (getTextOnPage.equals (& # 34; Материалы для тестирования программного обеспечения — ДЕМО СТРАНИЦА & # 34;)) {System.out.println ( getTextOnPage); return element;} else {System.out.println (& # 34; FluentWait Failed & # 34;); return null;}}}); }}

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

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

TAG: qa