Search code examples
javaseleniumselenium-webdriverwebdriverfluentwait

How to remove deprecation warning on timeout and polling in Selenium Java Client v3.11.0


Below is my code which is showing as deprecated after I have been updated the Selenium Webdriver version to 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;
}

Showing deprecated warning in withTimeout and pollingEvery section in the code.

How can I rewrite this code so that I can remove the deprecated warning.

Since am new to selenium am not sure about the change. Any help will be appreciated.


Solution

  • @Grasshopper 's answer points us to the exact modified constructor of FluentWait and your requirement of removing the deprecation warning from withTimeout and pollingEvery fields. Incase you are facing further difficulty you can use the line of code below :

    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);
    

    You can find a detailed discussion in The type FluentWait is not generic; it cannot be parameterized with arguments error for FluentWait Class through Selenium and Java