Selenium加载Chrome用户配置文件失败求助
Hey,我之前也碰到过Chrome大版本更新后Selenium加载用户配置文件出问题的情况,给你几个实用的排查和解决思路:
先检查Chrome进程是否被占用
这是最常见的原因!如果你的Chrome浏览器(包括后台隐藏进程)已经在运行,Selenium就无法独占加载指定的用户配置文件,大概率会超时卡死。解决方法:打开任务管理器,把所有chrome.exe和chromedriver.exe进程全部结束,然后再重新运行你的代码,注意不要手动打开Chrome再跑脚本。修复用户配置文件路径的拼接方式
你手动拼接路径的方式在Windows系统下可能会有分隔符或者特殊字符的问题,建议用Path.Combine来生成路径,更稳妥:string userDataDir = Path.Combine(userProfileDir, "Google", "Chrome", "User Data");这种方式会自动适配系统的路径分隔符,避免手动拼接导致的路径错误。
尝试使用配置文件副本而非原默认配置
Chrome 136版本可能对默认配置文件的加载逻辑做了调整,原Default文件夹里的缓存、扩展或损坏文件都可能导致加载超时。你可以复制一份Default文件夹到其他路径(比如C:\Temp\MyChromeProfile),然后修改代码指向这个副本:options.AddArgument(@"--user-data-dir=C:\Temp"); // 指向副本的上级目录 options.AddArgument("--profile-directory=MyChromeProfile"); // 指向副本文件夹名确认Chromedriver版本完全匹配
虽然你说已经更新了驱动,但一定要确保Chromedriver的版本和你的Chrome版本(136.0.7103.93)完全一致,哪怕小版本号不一样都可能出问题。建议直接下载对应版本的Chromedriver替换现有文件。添加额外参数禁用冲突功能
试试给ChromeOptions加这些参数,排除扩展、首次运行检查等可能干扰加载的因素:options.AddArgument("--no-first-run"); options.AddArgument("--no-default-browser-check"); options.AddArgument("--disable-extensions"); options.AddArgument("--disable-dev-shm-usage"); options.AddArgument("--remote-debugging-port=9222");
如果以上方法都没用,你可以先简化代码,去掉加载用户配置的参数,看看Selenium能不能正常启动Chrome。如果可以,那问题肯定出在配置文件加载的环节,再进一步排查配置文件本身的问题。
内容来源于stack exchange

