解决WebDriverWait中的cannot be applied的问题

Posted 码匠的流水账

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决WebDriverWait中的cannot be applied的问题相关的知识,希望对你有一定的参考价值。

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

  • FluentWait changes WebDriverWait().until(ExpectedCondition…) fails with java.lang.NoSuchMethodError #3606


以上是关于解决WebDriverWait中的cannot be applied的问题的主要内容,如果未能解决你的问题,请参考以下文章

webdriver中的等待-WebDriverWait()

selenium WebDriverWait 与 expected_conditions

是否不赞成使用Selenium中的WebDriverWait(WebDriver驱动程序,long timeoutInSeconds)?

Selenium webdriverwait(.text_to_be_present_in_element 没有)似乎工作,我找不到任何解决方案

Web自动化测试:WebDriverWait元素等待和全局设置

selenium元素等待及滚动条滚动