You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps中Edge浏览器Selenium测试间歇性报SessionNotCreatedException求助

间歇性SessionNotCreatedException:无法找到msedge二进制文件

问题描述

在Azure DevOps流水线中运行基于Microsoft Edge的Selenium测试用例时,出现间歇性异常:偶尔触发SessionNotCreatedException,报错信息为:

Message: unknown error: cannot find msedge binary

未修改虚拟机内的任何版本或二进制文件,测试执行5次中有2次成功,其余均失败。

环境信息

  • 系统:Windows Server 2016(amd64,版本10.0)
  • Java版本:17.0.6
  • WebDriver Manager版本:5.3.2
  • TestNG版本:6.14.3
  • Selenium版本:4.5.0
  • Microsoft Edge浏览器版本:112.0.1722.58

Edge浏览器初始化代码

EdgeOptions edgeOptions = new EdgeOptions();
edgeOptions.addArguments("--remote-allow-origins=*");
if(incognito.equalsIgnoreCase("Y")) {
   edgeOptions.addArguments("inprivate");
}
edgeOptions.setExperimentalOption("prefs",p);
WebDriverManager webDriverManager = WebDriverManager.edgedriver();
webDriverManager.config().setEdgeDriverVersion("112.0.1722.58");
webDriverManager.setup();
this.driver = new EdgeDriver(edgeOptions);

异常详情

org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: unknown error: cannot find msedge binary

System info: os.name: 'Windows Server 2016', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.6'
Driver info: org.openqa.selenium.edge.EdgeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: MicrosoftEdge, ms:edgeOptions: {args: [--remote-allow-origins=*, inprivate], extensions: [], prefs: {download.default_directory: D:\VSTSAgentsWork\01\292\s\...}}}], desiredCapabilities=Capabilities {browserName: MicrosoftEdge, ms:edgeOptions: {args: [--remote-allow-origins=*, inprivate], extensions: [], prefs: {download.default_directory: D:\VSTSAgentsWork\01\292\s\...}}}}]

日志显示Microsoft Edge WebDriver 112.0.1722.58已成功启动,但仍触发异常。

排查与解决方案

  1. 显式指定Edge二进制文件路径
    间歇性问题可能源于WebDriver偶尔无法正确定位Edge安装路径,可通过EdgeOptions强制指定浏览器二进制文件位置:

    // 根据实际安装路径调整,64位系统可能在Program Files目录下
    edgeOptions.setBinary("C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe");
    
  2. 检查Azure DevOps代理权限
    确保Azure DevOps运行测试的代理服务账号拥有Edge安装目录的读取权限,避免因权限不足导致无法访问二进制文件。

  3. 清理WebDriver缓存
    WebDriver Manager可能存在缓存冲突,可在流水线执行前添加清理步骤,删除WebDriver缓存目录(默认路径为~/.cache/selenium)。

  4. 升级依赖版本
    当前使用的WebDriver Manager 5.3.2和Selenium 4.5.0存在已知兼容性问题,建议升级至:

    • WebDriver Manager 5.5.3及以上版本
    • Selenium 4.10.0及以上版本
  5. 清理残留进程
    若流水线存在并行测试任务,可能出现Edge进程未完全释放导致的资源冲突,可在测试前添加PowerShell步骤杀死残留进程:

    taskkill /F /IM msedge.exe /T
    taskkill /F /IM msedgedriver.exe /T
    

内容的提问来源于stack exchange,提问作者Souvik Maiti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 16:17:42