You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome 110匹配版本ChromeDriver无法启动会话:DevTools连接失败求助

Chrome 110 + ChromeDriver 110 无法启动会话(DevTools连接失败)解决方法

环境信息

  • Chrome版本:Version 110.0.5481.177 (Official Build) (x86_64)
  • ChromeDriver版本:110.0.5481.77
  • Java版本:17
  • Selenium版本:4.8.1
  • macOS版本:13.2.1

问题描述

升级至Chrome 110并匹配对应版本驱动后,启动会话时出现如下错误:

Starting ChromeDriver 110.0.5481.77 (65ed616c6e8ee3fe0ad64fe83796c020644d42af-refs/branch-heads/5481@{#839}) on port 6304
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
[1677671505.261][WARNING]: Browser-wide DevTools client failed to connect: disconnected: unable to connect to renderer
org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: disconnected: not connected to DevTools
  (failed to check if window was closed: disconnected: not connected to DevTools)
  (Session info: chrome=110.0.5481.177) 
Host info: host: 'Adam.local', ip: 'fe80:0:0:0:6c:2c11:1a77:e83c%en0'
Build info: version: '4.6.0', revision: '79f1c02ae20'
System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '13.2.1', java.version: '17.0.6'
Driver info: org.openqa.selenium.chrome.ChromeDriver

当前驱动设置代码:

System.out.println("LOOKING FOR DRIVER");
System.setProperty("webdriver.chrome.driver", "./chromedriver");
System.out.println("DRIVER FOUND");
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
options.addArguments("user-agent=GetMyBoat/Test");
setupDriver = new ChromeDriver(options);

已尝试移除--headless参数、重装Chrome及相关数据,问题仍未解决。

解决方案

1. 更新Headless模式参数

Chrome 110+对Headless模式进行了升级,旧的--headless参数会导致DevTools连接异常,替换为新参数即可:

ChromeOptions options = new ChromeOptions();
// 替换旧的headless参数为新版格式
options.addArguments("--headless=new");
options.addArguments("user-agent=GetMyBoat/Test");
setupDriver = new ChromeDriver(options);

2. 添加DevTools连接权限参数

ChromeDriver 110新增跨源连接限制,添加以下参数解除限制并优化运行环境:

ChromeOptions options = new ChromeOptions();
options.addArguments("--headless=new");
options.addArguments("user-agent=GetMyBoat/Test");
// 允许所有源连接DevTools
options.addArguments("--remote-allow-origins=*");
// 解决macOS共享内存不足问题
options.addArguments("--disable-dev-shm-usage");
// 禁用沙箱模式(适配macOS环境)
options.addArguments("--no-sandbox");
setupDriver = new ChromeDriver(options);

3. 使用DriverManager自动管理驱动

手动设置驱动路径易出现兼容性问题,改用WebDriverManager自动匹配并下载驱动,无需手动配置System.setProperty:
首先添加Maven依赖(若使用Maven):

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

修改代码:

import io.github.bonigarcia.wdm.WebDriverManager;
// ...
WebDriverManager.chromedriver().setup();
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless=new");
options.addArguments("user-agent=GetMyBoat/Test");
options.addArguments("--remote-allow-origins=*");
setupDriver = new ChromeDriver(options);

4. 检查macOS系统权限

打开「系统设置」→「隐私与安全性」→「自动化」,确保你的IDE(如IntelliJ)或Java进程被允许控制Chrome;若仍有问题,检查「屏幕录制」权限,将Chrome和IDE加入允许列表。

5. 添加额外启动参数优化兼容性

添加以下参数减少Chrome启动时的兼容性问题:

options.addArguments("--window-size=1920,1080");
options.addArguments("--disable-gpu");
options.addArguments("--disable-extensions");
options.addArguments("--start-maximized");

内容的提问来源于stack exchange,提问作者Adam YourBuddy Bethlehem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 17:44:56