Как убрать предупреждение об устаревании при тайм-ауте и опросе в Selenium Java Client v3.11.0

Ниже приведен мой код, который считается устаревшим после того, как я обновил версию Selenium Webdriver до 3.11.0.

    private Wait<WebDriver> mFluentWait(WebDriver pDriver) {
    Wait<WebDriver> gWait = new FluentWait<WebDriver>(pDriver).withTimeout(100, TimeUnit.SECONDS)
            .pollingEvery(600, TimeUnit.MILLISECONDS).ignoring(NoSuchElementException.class);   
    return gWait;
}

Отображение устаревшего предупреждения в withTimeout а также pollingEvery раздел в коде.

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

Так как я новичок в селене, я не уверен об изменении. Любая помощь будет оценена.

4 ответа

Решение

Ответ @Grasshopper указывает нам на точный измененный конструктор FluentWait и ваше требование удалить предупреждение об устаревании из полей withTimeout и pollingEvery. Если вы столкнулись с дальнейшими трудностями, вы можете использовать строку кода ниже:

import java.time.Duration;
//lines of code
Wait<WebDriver> gWait = new FluentWait<WebDriver>(pDriver).withTimeout(Duration.ofSeconds(100))
        .pollingEvery(Duration.ofMillis(600)).ignoring(NoSuchElementException.class);

Проверьте исходный код FluentWait, в котором упоминается использование методов, использующих вместо Duration в качестве аргументов.

  1. withTimeout - использовать withTimeout(Duration duration) метод.
  2. pollingEvery - используйте pollingEvery(Duration duration) метод.

Вы можете использовать следующие строки кода:

  Wait<Browser> wait = new FluentWait<>(driver)
            .withTimeout(Duration.ofSeconds(*timeToWaitInSec*))
            .pollingEvery(Duration.ofMillis(*TimeToTryinMillisec*))
            .ignoring(WebDriverException.class);

После обновления до Selenium 4 несколько старых методов, частью которых является Fluent wait, устарели.

Используйте приведенный ниже код в аналогичном порядке для бесшовного выполнения:

       Wait<Browser> wait = new FluentWait<>(driver)
            .withTimeout(Duration.ofSeconds(*timeToWaitInSec*))
            .ignoring(WebDriverException.class)
            .pollingEvery(Duration.ofMillis(*TimeToTryinMillisec*));

Также обратитесь к статье ниже для других изменений/обновлений в Selenium 4.

https://applitools.com/blog/selenium-4-migration/

Другие вопросы по тегам