Jenkins构建任务无法启动Edge浏览器,但Eclipse中可正常运行
Jenkins环境下Edge浏览器启动失败(DevToolsActivePort不存在)的解决办法
错误信息如下:
org.openqa.selenium.WebDriverException: unknown error: Microsoft Edge failed to start: crashed. (unknown error: DevToolsActivePort file doesn't exist) (The process started from msedge location C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe is no longer running, so msedgedriver is assuming that msedge has crashed.) Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03' System info: host: 'HJNZL000593', ip: '192.168.1.15', os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '18.0.2.1' Driver info: driver.version: EdgeDriver remote stacktrace: Backtrace: GetHandleVerifier [0x00007FF665DDDB12+60274] Microsoft::Applications::Events::EventProperty::~EventProperty [0x00007FF665D6E772+818882]
仅在Jenkins环境下触发该错误,Chrome浏览器执行相同任务正常,以下是针对性解决步骤:
1. 配置EdgeDriver启动参数
在初始化EdgeDriver时添加必要参数,解决无头运行和端口冲突问题:
EdgeOptions options = new EdgeOptions(); options.addArguments("--headless=new"); // 启用新版无头模式,模拟正常浏览器环境 options.addArguments("--window-size=1920,1080"); // 指定窗口大小,避免渲染异常 options.addArguments("--no-sandbox"); // 禁用沙箱,适配Jenkins服务账户权限限制 options.addArguments("--disable-dev-shm-usage"); // 规避内存不足导致的崩溃 options.addArguments("--remote-debugging-port=9222"); // 手动指定调试端口,防止DevToolsActivePort文件缺失 EdgeDriver driver = new EdgeDriver(options);
2. 调整Jenkins服务权限
默认本地系统账户可能无足够权限运行Edge浏览器:
- 打开Windows服务管理器,找到Jenkins服务
- 右键选择「属性」-「登录」选项卡
- 切换为「此账户」,选择具备本地管理员权限的账户
- 重启Jenkins服务后重新执行构建任务
3. 匹配Edge浏览器与EdgeDriver版本
版本不兼容是常见崩溃原因:
- 打开Edge浏览器,输入
edge://settings/help查看当前版本 - 下载对应主版本号的EdgeDriver(确保版本完全匹配)
- 替换项目或Jenkins环境变量中的旧版驱动
4. 清理残留进程
构建前清理所有Edge相关进程,避免进程冲突:
添加Windows批处理命令到构建步骤:
taskkill /F /IM msedge.exe /IM msedgedriver.exe
内容的提问来源于stack exchange,提问作者N_rock
相关产品推荐
相关产品推荐

