使用EdgeDriver自动化CEF桌面客户端报错:无法识别MSEdge版本Chrome/92.0.4515.107
根本原因
你遇到的版本识别错误和系统安装的Chrome、Edge浏览器版本无关,你启动的基于CEF的桌面应用内置的Chromium内核版本为92.0.4515.107,它的远程调试接口返回的标识携带Chrome/92的版本信息,你当前使用的95版本Edge Driver仅适配95版本的Edge内核,版本不兼容导致连接失败。
此外你的代码存在三处冗余错误配置:
eo.UseWebView = true仅适配Edge WebView2应用,普通CEF应用不需要开启eo.BinaryLocation指定了Edge浏览器路径,你是连接已启动的CEF应用,不需要指定第三方二进制文件路径eo.AddArguments("UseChromium ", "true")属于无效参数,当前EdgeOptions默认适配Chromium内核的Edge,不需要额外声明
解决方案
- 下载版本为
92.0.902.*的Edge Driver,大版本号必须和CEF内核的92版本完全匹配,替换你当前使用的95版本Edge Driver - 将代码修改为如下内容:
// 替换为你下载的92版本Edge Driver的本地路径 System.Environment.SetEnvironmentVariable("webdriver.edge.driver", @"C:\Users\msedgedriver_92.exe"); EdgeOptions eo = new EdgeOptions(); eo.DebuggerAddress = "127.0.0.1:5553"; WebDriver d = new EdgeDriver(eo);
- 运行代码前先确认CEF应用已成功启动,且通过浏览器访问
http://127.0.0.1:5553可以正常打开调试页面
备选方案
你也可以选择下载92版本的Chrome Driver连接该CEF应用,CEF本身基于Chromium内核,Chrome Driver可以直接兼容,代码替换为Chrome相关类即可:
// 替换为92版本Chrome Driver的本地路径 System.Environment.SetEnvironmentVariable("webdriver.chrome.driver", @"C:\Users\chromedriver_92.exe"); ChromeOptions co = new ChromeOptions(); co.DebuggerAddress = "127.0.0.1:5553"; WebDriver d = new ChromeDriver(co);
内容的提问来源于stack exchange,提问作者Pri645
相关产品推荐
相关产品推荐

