【问题标题】:Getting exception java.lang.ClassNotFoundException: org.openqa.selenium.MutableCapabilities when launching browser through Selenium通过 Selenium 启动浏览器时出现异常 java.lang.ClassNotFoundException: org.openqa.selenium.MutableCapabilities
【发布时间】:2023-03-05 01:25:01
【问题描述】:

当 IntelliJ 尝试启动 Chrome 浏览器时,我遇到了上述异常。

我在 Ubuntu 16.04 上运行此代码,并且我已经尝试更新浏览器并使用 ChromeDriver 的特定 jar。

启动浏览器的代码:

WebDriverManager.chromedriver().setup();
driver = new ChromeDriver();

POM.xml:

<dependencies>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-chrome-driver</artifactId>
        <version>3.141.59</version>
    </dependency>


    <dependency>
        <groupId>io.github.bonigarcia</groupId>
        <artifactId>webdrivermanager</artifactId>
        <version>2.2.5</version>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.53.1</version>
    </dependency>

    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.14.3</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.17</version>
    </dependency>

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.17</version>
    </dependency>

    <dependency>
        <groupId>com.aventstack</groupId>
        <artifactId>extentreports</artifactId>
        <version>3.1.2</version>
    </dependency>

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.0</version>
    </dependency>

    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.6</version>
    </dependency>


    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-api</artifactId>
        <version>2.53.1</version>
        <scope>test</scope>
    </dependency>


    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.5</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.5</version>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-remote-driver</artifactId>
        <version>2.53.1</version>
    </dependency>

【问题讨论】:

    标签: java maven selenium selenium-webdriver selenium-chromedriver


    【解决方案1】:

    您使用的是与最新的 chrome 驱动程序二进制文件不兼容的旧版 Selenium (2.53.1)。

    查看您的 POM 的以下部分:

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>2.53.1</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-api</artifactId>
            <version>2.53.1</version>
            <scope>test</scope>
        </dependency>
    

    截至撰写本文时,Selenium 的当前 Java 版本是 3.141.59(查看 https://www.seleniumhq.org/download/ 以了解最新版本是什么)。

    您需要更新到更新的 Selenium 版本。

    【讨论】:

    • 感谢您的意见。我尝试使用您的方法,但现在出现以下异常:org.openqa.selenium.SessionNotCreatedException:未创建会话:此版本的 ChromeDriver 仅支持 Chrome 版本 76 构建信息:版本:'3.141.59',修订:'e82be7d358 ',时间:'2018-11-14T08:17:03'
    • 看起来您现在拥有的 ChromeDriver 二进制文件版本太新了,您需要下载并使用适用于 chrome 75 的 ChromeDriver 二进制文件,请参阅 chromedriver.chromium.org/downloads 特别是 chromedriver.storage.googleapis.com/…。 (我假设您的 Google Chrome 版本是 75.x.x)
    【解决方案2】:

    在你的 pom 地方,作为一个属性:

    <properties>
        <selenium.version>3.5.3</selenium.version>
    </properties>
    

    然后,在使用 selenium 版本的每个依赖项中,只需替换为属性引用,如下所示:

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>${selenium.version}</version>
        </dependency>    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-21
      • 2011-03-24
      • 2023-03-22
      • 2018-04-11
      • 1970-01-01
      • 2012-03-08
      • 2010-11-27
      • 2019-03-13
      相关资源
      最近更新 更多