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

Chrome 137.0.7151.41更新后,ChromeDriver无法连接已有浏览器实例

问题描述

我的Google Chrome已更新至版本137.0.7151.41 (Official Build) (64-bit),当前使用的ChromeDriver版本为137.0.7151.40。

更新前,我可通过在Chrome快捷方式中添加参数--remote-debugging-port=9222,再使用以下C#代码连接已有Chrome实例:

ChromeDriverService chromeDriverService = ChromeDriverService.CreateDefaultService();
chromeDriverService.HideCommandPromptWindow = false;
chromeDriverService.Start();

ChromeOptions chromeOptions = new ChromeOptions();

chromeOptions.DebuggerAddress = "127.0.0.1:9222";
IWebDriver tempDriver = new ChromeDriver(chromeDriverService, chromeOptions);

但现在调用ChromeDriver构造函数时会挂起直至超时,报错:

$exception  {"The HTTP request to the remote WebDriver server for URL http://localhost:62047/session timed out after 60 seconds."}  OpenQA.Selenium.WebDriverException

我通常在ChromeDriver与Chrome版本不匹配时遇到此错误,但本次版本差异极小。请问连接已有实例的远程调试是否已被弃用?该问题的成因可能是什么?

解答

远程调试连接已有Chrome实例的功能并未被弃用,以下是可能的成因及解决方向:

  • 微小版本差异的兼容性问题:即使Chrome和ChromeDriver仅差最后一位版本号,新版本Chrome可能对远程调试协议做了细微调整,导致Driver无法正常解析通信内容。建议升级ChromeDriver至与Chrome完全匹配的版本(137.0.7151.41)。

  • 远程调试权限限制:Chrome 111及以上版本默认限制了远程调试的跨域请求,需要在Chrome启动参数中添加--remote-allow-origins=*,否则ChromeDriver的请求会被拦截,导致超时。

  • 不必要的ChromeDriverService启动:连接已有Chrome实例时,无需手动启动ChromeDriverService,直接使用带DebuggerAddress的ChromeOptions构造ChromeDriver即可。手动启动服务可能引发端口冲突或额外的通信问题,简化代码如下:

    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.DebuggerAddress = "127.0.0.1:9222";
    IWebDriver tempDriver = new ChromeDriver(chromeOptions);
    
  • 端口占用或防火墙拦截:检查9222端口是否被其他程序占用,同时确认ChromeDriver启动的随机端口(如报错中的62047)未被系统防火墙拦截。

  • Chrome启动参数冲突:检查Chrome快捷方式中是否存在其他冲突参数,比如--no-sandbox、--user-data-dir等,可能干扰远程调试端口的正常监听。

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 01:57:19