selenium 什么原因导致java.lang.NoClassDefFoundError:使用WebDriverManager 5.0.3时需要

ztyzrc3y  于 2022-11-24  发布在  Java
关注(0)|答案(4)|浏览(208)

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

ymzxtsji1#

WebDriverManager v5.0.3和Selenium v4之间存在不兼容性。将Selenium降级到最新的v3 subversion后,一切正常。

**更新:**截至下面的评论,它与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>
z31licg0

z31licg02#

您可以将资源库与项目一起检查。
我也面临这个问题,最后我发现在我的maven项目中,selenium的依赖关系库没有相同的版本。
我创建了一个新的项目,使用Gradle而不是Maven与 selenium 4.0.0,它的工作很好。
所以我检查了不正确的库,并手动调整到与我的pom.xml中的selenium-java库相同的版本。最后它工作了。
顺便说一句:mvn清洁安装不为我工作。

<!-- 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>
tvokkenx

tvokkenx3#

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

pbgvytdp

pbgvytdp4#

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

相关问题