序
本文主要描述下如何解决WebDriverWait中的cannot applied的问题。
问题
webDriverWait.until(ExpectedConditions.presenceOfElementLocated(By.className("ready")));
升级了pom依赖,在使用这个方法的时候突然报错
until (java.util.function.Function<? super org.openqa.selenium.WebDriver,java.lang.Object>) in FluentWait cannot be applied
to (org.openqa.selenium.support.ui.ExpectedCondition<org.openqa.selenium.WebElement>)
自己在idea上点进去函数看半天没啥问题,一直纳闷。后来找到原因了,原来是旧版本guava引起的,旧版的guava这里还不支持泛型。应该是改动pom造成传递依赖成旧版的guava了。这里需要重新exclude掉,显式强制引入新版guava
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>22.0</version>
</dependency>
这样就大功告成了。