通过selenium启动浏览器时获取异常java.lang.ClassNotFoundException:org.openqa.selenium.MutableCapabilities
当IntelliJ尝试启动Chrome浏览器时,我遇到了上述异常 我正在Ubuntu 16.04上运行这段代码,我已经尝试过更新浏览器并使用ChromeDriver的特定JAR 启动浏览器的代码:通过selenium启动浏览器时获取异常java.lang.ClassNotFoundException:org.openqa.selenium.MutableCapabilities,java,maven,selenium,selenium-webdriver,selenium-chromedriver,Java,Maven,Selenium,Selenium Webdriver,Selenium Chromedriver,当IntelliJ尝试启动Chrome浏览器时,我遇到了上述异常 我正在Ubuntu 16.04上运行这段代码,我已经尝试过更新浏览器并使用ChromeDriver的特定JAR 启动浏览器的代码: WebDriverManager.chromedriver().setup(); driver = new ChromeDriver(); POM.xml: <dependencies> <dependency> <groupId>jun
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>
您使用的是旧版本的Selenium 2.53.1,它与最新的chrome驱动程序二进制文件不兼容 请参阅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,请查看最新版本
您需要更新到更新版本的Selenium。在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>
谢谢你的意见。我尝试使用您的方法,但现在出现以下异常:org.openqa.selenium.SessionNotCreatedException:会话未创建:此版本的ChromeDriver仅支持Chrome版本76构建信息:版本:“3.141.59”,修订版:“e82be7d358”,时间:'2018-11-14T08:17:03'看起来您现在有了一个ChromeDriver二进制版本太新了,您需要下载并使用Chrome75的ChromeDriver二进制,具体请参见。我假设你的谷歌浏览器版本是75.x.x