Java使用Selenium ChromeDriver启动Chrome报failed to start错误如何解决
问题根因
开头三行SLF4J相关输出是日志组件缺失实现的警告,不会阻断程序运行,不是报错原因。
核心报错原因是版本严重不匹配:从运行日志可以看到你当前使用的ChromeDriver版本为2.0(2014年发布的远古版本),但引入的Selenium版本是4.3.0,本地系统是Win10,安装的Chrome浏览器版本必然远高于ChromeDriver 2.0支持的上限,二者完全无法通信,直接导致Chrome启动失败。
另外你代码里的url变量当前赋值为"link",不是合法的带协议头的网址,等浏览器启动问题修复后也要同步修改,否则访问页面步骤会报错。
排查解决步骤
- 先查询本地Chrome浏览器的大版本号:打开Chrome浏览器,依次点击右上角三个点菜单→帮助→关于Google Chrome,弹窗里就能看到类似120、126这类的大版本标识。
- 下载和Chrome大版本完全一致的ChromeDriver压缩包,注意Chrome和ChromeDriver的大版本必须完全对应,跨大版本必然出现兼容问题。解压后得到新的
chromedriver.exe,替换掉你放在C盘根目录的旧版本文件,保持代码里的驱动路径配置不变即可。 - 如果你自定义过Chrome安装路径,没有装在系统默认目录,需要在初始化驱动前增加配置指定Chrome程序的实际位置,参考代码如下:
import org.openqa.selenium.chrome.ChromeOptions; // 注意补全这个导包 public class Main { // 替换成真实的带http/https前缀的目标网址 static String url = "https://www.example.com"; public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe"); ChromeOptions options = new ChromeOptions(); // 把下面路径改成你电脑上chrome.exe的实际存放路径 options.setBinary("C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"); WebDriver driver = new ChromeDriver(options); driver.get(url); System.out.println("Wait a bit for the page to render"); // 测试完记得加driver.quit()关闭浏览器进程,避免后台残留 driver.quit(); } }
- 嫌手动找对应版本驱动麻烦的话,Selenium 4.x系列已经内置驱动自动管理功能,可以直接删掉
System.setProperty指定驱动路径的那行代码,Selenium会自动下载和你本地Chrome版本匹配的驱动,不用手动管理。
其他说明
- 运行日志里的拼写错误(比如reques、capabiliies、saus这类)都是远古版ChromeDriver 2.0本身的日志打印bug,不用在意,换新版驱动就会消失。
- 如果替换驱动后还是启动失败,检查一下C盘根目录的
chromedriver.exe有没有被系统安全软件拦截,右键点文件看属性里有没有“解除锁定”的选项,有的话勾选后确定再运行。
内容的提问来源于stack exchange,提问作者AlexM
相关产品推荐
相关产品推荐

