1

我有一个 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>
4

3 回答 3

4

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>
于 2021-12-01T11:46:09.597 回答
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>
于 2021-12-22T08:06:52.540 回答
0

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

于 2021-12-04T12:36:53.643 回答