Problem with Waits after upgrading to Appium 1.6.3

I finally upgraded from Appium 1.5.3 to 1.6.3 so I can test on iOS 10, and I believe that I have everything configured right. Using an iPhone 6/iOS 10.2 simulator the app file is installed and I can perform one simple test. I realize that I have to redo all of my locators with “XCUI”, but most of my tests are now broken over the Wait methods I use in most scripts. Example of this error- original line of code that worked in Appium 1.5.3/appium java-client 4.1.2/selenium java-client 2.53.1:

new WebDriverWait(driver, 15).until(ExpectedConditions.presenceOfElementLocated(“Submit”)));

The error in Eclipse reads:
The method(Function<? super WebDriver,V>) in the type FluentWait is not applicable for the arguments (ExpectedCondition)

One “quick fix suggestion” is displayed:
Cast argument 1 to ‘Function<? super WebDriver, V>’

If I choose the suggestion, it changes my line of code into:
new WebDriverWait(driver, 15).until((Function>? super WebDriver, V>)ExpectedConditions.presenceOfElementLocated(“Submit”)));

However, the line of code is still broken with the message:
The method until(Function<? super WebDriver,V>) from the type FluentWait refers to the missing type V.

I’m not sure what what “V” or “super” is or how to correct the problem. Would anybody know?

I’m on a Mac (10.12.2) and these are my current versions:
Appium server: 1.6.3
Appium java-client: 5.0.0-BETA4
selenium java-client: 3.2.0
Target: Simulator (iPhone 6 running iOS 10.2)

got same. problem in latest selenium -

1 Like


Use the latest Guava jar (version 21). That would resolve the issue. And you would be able to use the same ExpectedConditions code in your scripts. For Maven, use -

1 Like

Thanks! That fixed the errors.