求助:Selenium+ChromeDriver启动Chrome时出现DevToolsActivePort文件不存在报错
Selenium + ChromeDriver启动Chrome报错解决方案
报错信息
Exception calling ".ctor" with "2" argument(s): "unknown error: Chrome failed to start: exited normally.
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location C:\Program Files\Google\Chrome\Application\chrome.exe is no longer running, so ChromeDriver is assuming that Chrome has crashed.)"
已尝试操作
- 更新至最新版Chrome(Version 108.0.5359.99 32位)
- 更新ChromeDriver至108.0.5359.71
- 更新Selenium Web Driver(C# 4.7.0)
可行解决办法
1. 配置Chrome启动参数
初始化ChromeDriver时添加以下参数,解决端口和权限相关问题:
var options = new ChromeOptions(); // 禁用沙箱模式,避免系统权限限制 options.AddArgument("--no-sandbox"); // 禁用GPU加速,适配部分环境兼容性 options.AddArgument("--disable-gpu"); // 手动指定调试端口,解决DevToolsActivePort缺失问题 options.AddArgument("--remote-debugging-port=9222"); // 设置自定义用户数据目录,避免临时目录权限冲突 options.AddArgument(@"--user-data-dir=C:\Temp\ChromeProfile"); var driver = new ChromeDriver(options);
2. 清理残留进程
运行脚本前强制结束所有Chrome相关进程:
- 手动操作:打开任务管理器,结束所有
chrome.exe和chromedriver.exe进程 - 代码实现:
// 清理Chrome进程 foreach (var process in Process.GetProcessesByName("chrome")) { process.Kill(); } // 清理ChromeDriver进程 foreach (var process in Process.GetProcessesByName("chromedriver")) { process.Kill(); }
3. 检查权限设置
- 确保运行脚本的账户对
C:\Program Files\Google\Chrome\Application目录拥有读写权限 - 尝试以管理员身份运行脚本或开发工具,规避权限不足问题
4. 更换Chrome版本
如果32位版本存在兼容性问题,可尝试安装64位Chrome,并匹配对应的64位ChromeDriver,确保版本完全一致
5. 禁用Chrome自动更新
自动更新残留文件可能导致启动异常,通过注册表禁用更新:
- 打开注册表编辑器(运行
regedit) - 定位到
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome - 创建两个DWORD值:
AutoUpdateCheckPeriodMinutes(值设为0)、UpdateDefault(值设为0)
内容的提问来源于stack exchange,提问作者RobMFB
相关产品推荐
相关产品推荐

