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

ChromeDriver V124间歇性Selenium WebDriver异常排查求助

关于ChromeDriver V124间歇性触发WebDriverException:disconnected: unable to send message to renderer的排查方案

问题背景

在Visual Studio中基于.Net框架编写Selenium测试用例,使用ChromeDriver,此前运行正常。但ChromeDriver更新至V124后,出现间歇性异常:测试过程中Chrome浏览器会随机关闭,抛出特定错误。

错误信息

OpenQA.Selenium.WebDriverException: disconnected: unable to send message to renderer

(failed to check if window was closed: disconnected: not connected to DevTools)
  (Session info: chrome=124.0.6367.156)

当前ChromeOptions配置

optn.AddArgument("--no-sandbox");
optn.AddArgument("--ignore-certificate-errors");
optn.AddArgument("--no-first-run");
optn.AddArgument("--disable-fre");
optn.AddArgument("--no-default-browser-check");
optn.AddArgument("--disable-gpu");
optn.AddArgument("--disable-blink-features=AutomationControlled");
optn.AddArgument("--disable-extensions");
optn.AddArgument("--test-type");
optn.AddArguments("disable-infobars");
optn.AddArguments("--disable-notifications");
optn.AddArguments("--disable-popup-blocking");
optn.AddArguments("start-maximized");
optn.AddExcludedArgument("--enable-automation");

注:测试无法以无头模式运行,异常发生时电脑未处于休眠状态。

已尝试的解决措施

  • 重启系统;
  • 在Visual Studio 2019中运行测试,仍出现相同错误;
  • 卸载并重新安装近期Windows安全更新,无改善;
  • 尝试其他ChromeDriver版本,但因与当前Chrome版本不兼容而失败,且无法回退Chrome版本。

可尝试的排查方向

1. 调整ChromeOptions参数,移除潜在冲突配置

  • 移除--test-type参数:该参数为旧版Chrome测试模式标识,新版Chrome已不再兼容,易引发渲染进程异常;
  • 临时移除--disable-blink-features=AutomationControlled参数:新版Chrome的DevTools协议对该反检测参数的处理逻辑有变化,可能导致通信中断;
  • 统一参数格式:将disable-infobars改为--disable-infobars,统一使用AddArgument(单数)方法添加参数,避免解析异常。

2. 优化Selenium会话与进程管理

  • 强制使用driver.Quit()替代driver.Close():Close()仅关闭当前窗口,易残留渲染进程;Quit()会彻底终止ChromeDriver和浏览器进程;
  • 增加测试收尾的进程清理:在测试类的Teardown方法中,强制杀死残留的chrome.exe、chromedriver.exe进程,避免资源堆积;
  • 降低测试并行度:若为并行执行测试,减少同时运行的测试数量,避免系统资源耗尽导致浏览器进程被强制终止。

3. 排查系统资源与环境干扰

  • 实时监控CPU、内存占用:测试过程中通过任务管理器观察Chrome进程资源消耗,若内存占用过高会被系统强制终止;
  • 关闭后台干扰软件:暂停杀毒软件、VPN、系统级浏览器扩展等,这类软件可能拦截ChromeDriver与浏览器的DevTools通信;
  • 锁定Chrome版本:关闭Chrome自动更新功能,避免测试过程中版本自动变更引发兼容性问题。

4. 启用ChromeDriver日志定位细节

  • 开启详细日志记录,捕获DevTools通信异常:
var service = ChromeDriverService.CreateDefaultService();
service.LogPath = "chromedriver.log";
service.EnableVerboseLogging = true;
var driver = new ChromeDriver(service, optn);
  • 查看生成的chromedriver.log,重点关注异常发生前的日志条目,比如渲染进程崩溃提示、连接超时记录等。

5. 验证Selenium版本兼容性

  • 升级Selenium .Net包:将Selenium.WebDriver和Selenium.Support更新至最新稳定版,旧版Selenium可能对ChromeDriver 124的协议支持不完善;
  • 重新下载匹配版本的ChromeDriver:确保ChromeDriver 124与当前Chrome版本(124.0.6367.156)严格对应,避免版本下载错误。

内容的提问来源于stack exchange,提问作者SlaughterHouse5.1

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 15:45:07