【问题标题】:What causes java.lang.NoClassDefFoundError: org/openqa/selenium/internal/Require when using WebDriverManager 5.0.3使用 WebDriverManager 5.0.3 时导致 java.lang.NoClassDefFoundError: org/openqa/selenium/internal/Require 的原因
【发布时间】:2022-11-12 22:39:01
【问题描述】:

我有一个 Spring Boot 应用程序,我想用 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>

【问题讨论】:

    标签: selenium selenium-webdriver webdriver-manager webdrivermanager-java


    【解决方案1】:

    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>
    

    【讨论】:

    • 它有帮助。您知道我在哪里可以找到有关此不兼容性的更多信息吗?
    【解决方案2】:

    您可以使用您的项目检查您的库。

    我也面临这个问题,最后我在我的maven项目中发现selenium的依赖库没有相同的版本。

    我使用 Selenium 4.0.0 的 Maven 以外的 Gradle 创建了一个新项目,它工作正常。

    所以我检查了不正确的库,并在我的 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>
    

    【讨论】:

      【解决方案3】:

      在将版本更改为 4** 或将此依赖项添加到 pom 文件后,您需要在 pom.xml 文件所在的同一目录上执行 mvn clean compile 命令。

      【讨论】:

        【解决方案4】:

        最新的 selenium 4.6.0 与 web driver manager 5 不兼容。 因此,您需要将 Web 驱动程序管理器降级到 4.4.3。它是 5.0 之前的最后一个稳定版本。 降级它,它会正常工作

        【讨论】:

          猜你喜欢
          • 2021-12-12
          • 1970-01-01
          • 2018-03-21
          • 2016-08-10
          • 2022-01-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多