解决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的问题的主要内容,如果未能解决你的问题,请参考以下文章
selenium WebDriverWait 与 expected_conditions
是否不赞成使用Selenium中的WebDriverWait(WebDriver驱动程序,long timeoutInSeconds)?
Selenium webdriverwait(.text_to_be_present_in_element 没有)似乎工作,我找不到任何解决方案