使用 WebDriverManager 5.0.3 时导致 java.lang.NoClassDefFoundError: org/openqa/selenium/internal/Require 的原因是什么

Chr*_*ris 4 selenium selenium-webdriver webdriver-manager webdrivermanager-java

我有一个 Spring Boot 应用程序,我想用 Selenium 进行测试。我正在使用 WebDriverManager v5.0.3

设置 WebDriver 时WebDriverManager.chromedriver().setup();出现异常:

java.lang.NoClassDefFoundError: org/openqa/selenium/internal/Require
Run Code Online (Sandbox Code Playgroud)

或者

java.lang.ClassNotFoundException: org.openqa.selenium.internal.FindsById
Run Code Online (Sandbox Code Playgroud)

我的 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>
Run Code Online (Sandbox Code Playgroud)

Chr*_*ris 8

WebDriverManager v5.0.3 和 Selenium v​​4 之间不兼容。将 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>
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以检查您的项目中的库。

我也面临这个问题,最后我发现在我的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>
Run Code Online (Sandbox Code Playgroud)