Join 500+ Software Testing professionals. Solve problem and get your problem solved. Register Now!

The method until(Function) in the type FluentWait is not applicable for the arguments

Solved 1 Answers 1465 Views
0 1

I am using WebDriver wait in my code. I upgraded my selenium library. I started to get below error.

The method until(Function<? super WebDriver,V>) in the type FluentWait<WebDriver> is not applicable for the arguments (new ExpectedCondition<WebElement>(){})

My sample code:

Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
       .withTimeout(30, SECONDS)
       .pollingEvery(5, SECONDS)

   WebElement foo = wait.until(new Function<WebDriver, WebElement>() {
     public WebElement apply(WebDriver driver) {
       return driver.findElement("foo"));

1 Answer

Best answer

You will have to update Guava library to version 21 and your JDK to version 8.

Change log for WebDriver wait and FluentWait

* Updated Guava to version 21 and started using Java 8 features. Users
  are recommended to update too.
* Remove deprecated `FluentWait.until(Predicate<?>)` method. This
  should make lambdas work properly with Wait instances now.
* Update how the WebDriverException gathers system info. Resolves an
  issue with slow-downs on OS X Sierra
* Update Wait and FluentWait for Java 8. Requires an update to the
  latest guava version 21.0
answered by (151 points)
selected by

Your answer

Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
Anti-spam verification:
To avoid this verification in future, please log in or register.