java.lang.NoSuchMethodError: org.openqa.selenium.support.ui.WebDriverWait.until
java.lang.NoSuchMethodError: org.openqa.selenium.support.ui.WebDriverWait.until
自动测试后发生错误 java.lang.NoSuchMethodError
:
org.openqa.selenium.support.ui.WebDriverWait.until(Lcom/google/common/base/Function;)Ljava/lang/Object;
环境:
- 硒-java-3
- guava-25.0-jre
- java 8
- GoogleChrome77版本
- Chrome驱动程序 77.0.3865.40
代码:
WebDriverWait alertAwaiter = new WebDriverWait(webDriver, 2);
alertAwaiter.until(ExpectedConditions.alertIsPresent());
执行这段代码的第二行时,出现java.lang.NoSuchMethodError
:
org.openqa.selenium.support.ui.WebDriverWait.until(Lcom/google/common/base/Function;)Ljava/lang/Object;
无法更改此代码,是否可以使用其他版本的驱动程序或以其他方式执行某些操作?
您需要找到合适版本的 selenium 库并将其放入类路径。现代版本使用 java.util.Function
而不是 com.google.common.base.Function
,参见 https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/support/ui/FluentWait.html#until-java.util.function.Function-
因此,如果您无法修改源代码,则需要在应用程序类路径中使用相当旧版本的 Selenium 驱动程序。
尝试降级到 selenium 3.0.1
或 2.x
。最新的2.53.1
版本使用了guava,版本3.0.1
似乎是最后一个使用guava的了。
自动测试后发生错误 java.lang.NoSuchMethodError
:
org.openqa.selenium.support.ui.WebDriverWait.until(Lcom/google/common/base/Function;)Ljava/lang/Object;
环境:
- 硒-java-3
- guava-25.0-jre
- java 8
- GoogleChrome77版本
- Chrome驱动程序 77.0.3865.40
代码:
WebDriverWait alertAwaiter = new WebDriverWait(webDriver, 2);
alertAwaiter.until(ExpectedConditions.alertIsPresent());
执行这段代码的第二行时,出现java.lang.NoSuchMethodError
:
org.openqa.selenium.support.ui.WebDriverWait.until(Lcom/google/common/base/Function;)Ljava/lang/Object;
无法更改此代码,是否可以使用其他版本的驱动程序或以其他方式执行某些操作?
您需要找到合适版本的 selenium 库并将其放入类路径。现代版本使用 java.util.Function
而不是 com.google.common.base.Function
,参见 https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/support/ui/FluentWait.html#until-java.util.function.Function-
因此,如果您无法修改源代码,则需要在应用程序类路径中使用相当旧版本的 Selenium 驱动程序。
尝试降级到 selenium 3.0.1
或 2.x
。最新的2.53.1
版本使用了guava,版本3.0.1
似乎是最后一个使用guava的了。