What causes java.lang.NoClassDefFoundError: org/openqa/selenium/internal/Require when using WebDriverManager 5.0.3
What causes java.lang.NoClassDefFoundError: org/openqa/selenium/internal/Require when using WebDriverManager 5.0.3
我有一个 spring 引导应用程序,我想用 Selenium 对其进行测试。我正在使用 WebDriverManager v5.0.3
设置 WebDriver WebDriverManager.chromedriver().setup();
时出现异常:
java.lang.NoClassDefFoundError: org/openqa/selenium/internal/Require
或
java.lang.ClassNotFoundException: org.openqa.selenium.internal.FindsById
我的 pom.xml 包含这个:
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.0.3</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>4.1.0</version>
</dependency>
WebDriverManager v5.0.3 与 Selenium v4 不兼容。将 Selenium 降级到最新的 v3 颠覆后,一切正常。
更新: 根据下面的评论,它适用于 WebDriverManager >=v5.1.0
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.0.3</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>3.141.59</version>
</dependency>
将版本更改为 4** 或将此依赖项添加到 pom 文件后,需要在 pom.xml
文件所在的同一目录上执行 mvn clean compile
命令。
您可以检查您的库与您的项目。
我也遇到了这个问题,最后我在我的maven项目中发现selenium的依赖库没有相同的版本。
我创建了一个新项目,使用 Gradle 除了 Maven 和 selenium 4.0.0,它工作正常。
所以我检查了不正确的库并手动调整到与我 pom.xml 中的 selenium-java 库相同的版本。终于成功了。
顺便说一句:mvn clean install 对我不起作用。
<!-- only this origin -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.0.0</version>
</dependency>
<!-- add belows for these dependencies version is not 4.0.0 when automatically generated -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
<version>4.0.0</version>
</dependency>
我有一个 spring 引导应用程序,我想用 Selenium 对其进行测试。我正在使用 WebDriverManager v5.0.3
设置 WebDriver WebDriverManager.chromedriver().setup();
时出现异常:
java.lang.NoClassDefFoundError: org/openqa/selenium/internal/Require
或
java.lang.ClassNotFoundException: org.openqa.selenium.internal.FindsById
我的 pom.xml 包含这个:
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.0.3</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>4.1.0</version>
</dependency>
WebDriverManager v5.0.3 与 Selenium v4 不兼容。将 Selenium 降级到最新的 v3 颠覆后,一切正常。
更新: 根据下面的评论,它适用于 WebDriverManager >=v5.1.0
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.0.3</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>3.141.59</version>
</dependency>
将版本更改为 4** 或将此依赖项添加到 pom 文件后,需要在 pom.xml
文件所在的同一目录上执行 mvn clean compile
命令。
您可以检查您的库与您的项目。
我也遇到了这个问题,最后我在我的maven项目中发现selenium的依赖库没有相同的版本。
我创建了一个新项目,使用 Gradle 除了 Maven 和 selenium 4.0.0,它工作正常。
所以我检查了不正确的库并手动调整到与我 pom.xml 中的 selenium-java 库相同的版本。终于成功了。
顺便说一句:mvn clean install 对我不起作用。
<!-- only this origin -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.0.0</version>
</dependency>
<!-- add belows for these dependencies version is not 4.0.0 when automatically generated -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
<version>4.0.0</version>
</dependency>