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(By.id(“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(By.id(“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)