Chrome 116与Undetected ChromeDriver 114版本不兼容问题求助
解决Undetected ChromeDriver与Chrome 116版本兼容问题的思路
方案1:结合WebDriverManager指定正确驱动路径
先利用WebDriverManager获取对应Chrome 116的ChromeDriver路径,再手动传给Undetected ChromeDriver,同时关闭它的自动下载功能:
// 用WebDriverManager获取匹配Chrome 116的驱动路径 var driverPath = WebDriverManager.DriverManager.Instance.ResolveDriverPath(DriverManager.ChromeDriver); // 初始化Undetected ChromeDriver,指定路径并禁用自动下载 var options = new ChromeOptions(); var driver = new UndetectedChromeDriver( driverPath: driverPath, options: options, autoDownload: false );
注:如果用的是Selenium.UndetectedChromeDriver包,构造函数参数可能有差异,需对应调整。
方案2:强制指定驱动版本(临时修复)
部分Undetected ChromeDriver包的版本映射未更新到116,可通过以下方式强制指定:
- 设置环境变量
CHROME_DRIVER_VERSION为116.0.5845.96(Chrome 116对应的驱动版本),部分包会读取该变量下载对应驱动; - 用反射修改包内版本检测类的映射规则,把Chrome 116指向116版本驱动(适合有一定开发能力的场景)。
方案3:更换维护更活跃的包/源码
- 排查NuGet是否有社区更新的适配Chrome 116的Undetected ChromeDriver包,替换现有引用;
- 直接从GitHub拉取最新的Undetected ChromeDriver源码,自行编译适配.NET 6的版本,替代NuGet包。
方案4:封装自定义自动适配工具
基于WebDriverManager的版本检测能力,自己封装初始化逻辑,实现类似自动适配:
- 用WebDriverManager检测当前Chrome版本,获取对应驱动路径;
- 初始化Undetected ChromeDriver时传入该路径,关闭自动下载;
- 把这段逻辑封装成静态方法,生产环境直接调用即可。
内容的提问来源于stack exchange,提问作者CodeMonkey
相关产品推荐
相关产品推荐

