WebDriverManager初始化Edge驱动时报404 Not Found错误的解决方法
错误原因
这个404的根本原因是旧版WebDriverManager里硬编码的Edge驱动下载地址已经失效:
- 微软早已调整Edge WebDriver的官方分发路径,旧版本NuGet包内置的老下载链接已被官方移除,发起请求时会直接返回404状态码
- 部分老版本包的版本匹配逻辑存在缺陷,无法精准识别本地安装的Edge浏览器版本时,会拼接出不存在的资源地址发起请求,最终触发报错
- 你查到的Chrome驱动同类404问题逻辑完全一致:谷歌也调整过Chrome驱动的官方下载源,未做适配的旧版本包请求废弃的旧地址,自然会找不到资源。
修复方案
按优先级依次尝试即可,第一个方案可解决绝大多数场景的问题:
- 升级WebDriverManager到适配新源的稳定版本
直接将WebDriverManagerNuGet包升级到2.16.2及以上的稳定版本,该版本已经完成Edge新下载源的适配,升级后原有代码无需任何修改即可正常运行:var driverManager = new DriverManager(); driverManager.SetUpDriver(new EdgeConfig()); - 受项目依赖限制无法升级包版本时,手动指定驱动版本与下载源
初始化EdgeConfig配置时,手动传入和本地Edge浏览器完全一致的版本号,同时配置官方新的下载根地址,避免包自动请求已失效的旧链接:var driverManager = new DriverManager(); var edgeConfig = new EdgeConfig(); // 版本号可在Edge设置-关于Microsoft Edge页面查看,替换为实际值即可 edgeConfig.Version = "例如128.0.2739.42"; edgeConfig.Url = "Edge驱动官方新的分发根地址"; driverManager.SetUpDriver(edgeConfig); - 兜底方案:跳过自动下载逻辑,手动指定本地驱动路径
如果以上方案均无法生效,可以直接下载对应版本的Edge驱动文件存到本地目录,初始化EdgeDriver时直接传入驱动所在的本地文件夹路径,完全绕过WebDriverManager的自动下载流程。
排查前先确认本地网络可以正常访问驱动分发服务器,代理配置错误、网络拦截也会导致资源请求失败,不要直接误判为代码问题。
内容的提问来源于stack exchange,提问作者sashoalm
相关产品推荐
相关产品推荐

