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

.NET C#应用调用Selenium时无法启动Chrome进程问题求助

问题根因定位与解决方案

1. 优先校验核心版本匹配问题

  • Selenium 3.141.0默认配套的ChromeDriver最高仅支持Chrome 7x版本,和你使用的Chrome 96版本完全不兼容,这是最常见的报错原因。你需要下载对应Chrome 96版本的ChromeDriver:Chrome 96对应的ChromeDriver版本为96.0.4664.45,下载后放在系统PATH路径下,或者在初始化ChromeDriver时显式指定驱动路径。

2. 修正Chrome二进制路径配置错误

你当前配置的BinaryLocation是32位Chrome的默认安装路径,而你使用的是64位Chrome,64位Chrome默认安装路径为C:\Program Files\Google\Chrome\Application\chrome.exe,请先确认你的Chrome实际安装路径,和配置的值完全一致,避免路径写错导致无法找到Chrome进程。
另外注意C#中路径字符串需要加@前缀取消转义,否则路径中的\会被识别为转义符导致路径失效。

3. 补充必要的启动参数规避启动失败

很多时候Chrome启动会因为权限、沙箱等问题启动失败,建议添加以下启动参数:

// 规避沙箱报错,Windows环境下兼容性更高
chromeOptions.AddArgument("--no-sandbox");
// 禁用GPU加速,避免部分渲染异常导致启动失败
chromeOptions.AddArgument("--disable-gpu");

4. 修正后的完整配置参考

ChromeOptions chromeOptions = new ChromeOptions
{
    // 替换为你实际的Chrome安装路径,加@取消转义
    BinaryLocation = @"C:\Program Files\Google\Chrome\Application\chrome.exe"
};
chromeOptions.AddArgument("incognito");
chromeOptions.AddArgument("--no-sandbox");
chromeOptions.AddArgument("--disable-gpu");

// 如果没有把ChromeDriver放在系统PATH,需要显式指定驱动所在目录,示例如下
// using (ChromeDriver window = new ChromeDriver(@"C:\你的ChromeDriver存放路径", chromeOptions))
using (ChromeDriver window = new ChromeDriver(chromeOptions))
{
    try
    {
        log.Debug("Chrome window instantiated");
        // 后续业务逻辑
    }
    catch (Exception ex)
    {
        // 打印详细报错信息,方便进一步定位
        log.Error("Chrome启动失败", ex);
    }
}

5. 其他排查方向

  • 检查当前Windows账号是否有Chrome安装路径、ChromeDriver路径的读取和执行权限,避免权限不足导致启动失败
  • 关闭本地已运行的Chrome进程,避免多进程冲突导致Selenium无法启动新的Chrome实例
  • 如果你电脑上同时安装了32位和64位两个版本的Chrome,确保BinaryLocation配置的路径对应的Chrome版本确实是96.0.4664.45

内容的提问来源于stack exchange,提问作者K.Z

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:24:04