本文主要描述下如何解决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>

这样就大功告成了。

doc


codecraft
11.9k 声望2k 粉丝

当一个代码的工匠回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞愧,这样,当他老的时候,可以很自豪告诉世人,我曾经将代码注入生命去打造互联网的浪潮之巅,那是个很疯狂的时代,我在一波波的浪潮上留下...