Azure DevOps流水线中Selenium SessionNotCreatedException异常修复咨询
解决Azure DevOps流水线中ChromeDriver启动失败的问题
问题根源
Azure DevOps流水线的运行环境为无图形界面环境,Chrome默认依赖图形界面启动,导致进程异常退出,进而触发SessionNotCreatedException(错误中提到的DevToolsActivePort file doesn't exist是典型的无头环境未配置的表现)。
修复方案
修改ChromeDriver初始化代码,添加无头模式及CI环境必需的启动参数,示例代码如下:
ChromeOptions options = new ChromeOptions(); // 启用新版无头模式(Selenium 4+推荐) options.addArguments("--headless=new"); // 禁用沙箱,适配CI环境的权限限制 options.addArguments("--no-sandbox"); // 禁用/dev/shm内存限制,避免资源不足导致崩溃 options.addArguments("--disable-dev-shm-usage"); // 设置固定窗口尺寸,保证页面渲染一致性 options.addArguments("--window-size=1920,1080"); // 禁用GPU加速,无头模式无需此功能 options.addArguments("--disable-gpu"); WebDriver driver = new ChromeDriver(options);
额外检查项
- 确认Azure DevOps代理(托管或自托管)已安装Chrome浏览器,Selenium Manager会自动匹配对应版本的ChromeDriver,但需保证Chrome已正确部署。
- 若使用托管代理,选择
ubuntu-latest等预装Chrome的镜像,避免手动安装的麻烦。
内容的提问来源于stack exchange,提问作者Nithya Rao
相关产品推荐
相关产品推荐

