Типы явного ожидания в веб-драйвере Selenium (Java)? - PullRequest
0 голосов
/ 15 мая 2018

Какие типы ожидания присутствуют в веб-драйвере явного ожидания в Selenium (Java)?Есть ли какие-либо типы в явном ожидании?если так, пожалуйста, уточните ..

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Возможны следующие ожидания:

FluentWait

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

  Wait wait = new FluentWait(driver)
    .withTimeout(30, SECONDS)
    .pollingEvery(5, SECONDS)
    .ignoring(NoSuchElementException.class);

  WebElement foo = wait.until(new Function() {
    public WebElement apply(WebDriver driver) {
    return driver.findElement(By.id("foo"));
  }

  });

явное ожидание Это своего рода ожидание, когда выМожно настроить его на ожидание любого условия, которое вам может понравиться.Как правило, вы можете использовать некоторые из готовых ExpectedConditions

Типы ожидаемых условий: https://github.com/SeleniumHQ/selenium/blob/master/java/client/src/org/openqa/selenium/support/ui/ExpectedConditions.java

WebDriverWait wait = new WebDriverWait(driver, 10);

    WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("someid")));

Неявное ожидание ожидание элементаДо тех пор, пока исключение не будет сгенерировано при инициализации объекта и определено в течение всего сеанса

 WebDriver driver = new FirefoxDriver();

 driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);

 driver.get("http://...");

 WebElement myDynamicElement = driver.findElement(By.id("myDynamicElement"));

PageLoadTimeou Сколько времени будет до загрузки страницы:

 driver.manage().timeouts().pageLoadTimeout(100, SECONDS);

SetScriptTimeout

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

driver.manage().timeouts().setScriptTimeout(100,SECONDS);
0 голосов
/ 15 мая 2018

Насколько мне известно, в явном ожидании больше нет типов ожидания. У нас есть только неявное ожидание, явное ожидание и свободное ожидание.

...