Bitbucket流水线运行.NET5 Selenium项目报Cannot start the driver service错误
Bitbucket流水线Selenium ChromeDriver启动报错解决方案
- 确认运行环境已安装对应组件:Bitbucket CI默认无浏览器相关组件,需在流水线yml配置的执行步骤中补充Chrome浏览器、ChromeDriver的安装命令,二者大版本号必须完全匹配,同时保证ChromeDriver二进制文件拥有可执行权限。
必须配置无头模式及--no-sandbox参数,是无图形界面CI环境运行Selenium的必要前提,C#初始化ChromeDriver的参考配置如下:
var chromeOptions = new ChromeOptions(); // 适配Chrome 112及以上版本的新版无头模式,旧版本Chrome可替换为--headless chromeOptions.AddArgument("--headless=new"); // 解决CI环境默认root用户运行Chrome的权限限制 chromeOptions.AddArgument("--no-sandbox"); // 解决CI环境共享内存不足导致的启动失败问题 chromeOptions.AddArgument("--disable-dev-shm-usage"); // 禁用GPU适配无图形界面环境 chromeOptions.AddArgument("--disable-gpu"); var driver = new ChromeDriver(chromeOptions);
- 可显式指定ChromeDriver启动端口,避免随机端口被占用导致的启动失败:
var driverService = ChromeDriverService.CreateDefaultService(); // 自定义未被占用的固定端口 driverService.Port = 24567; var driver = new ChromeDriver(driverService, chromeOptions);
- 检查NuGet包版本兼容性:项目中安装的
Selenium.WebDriver包版本需适配你使用的Chrome版本,过旧的Selenium版本无法兼容新版Chrome和ChromeDriver。 - 若使用微软官方.NET 5镜像作为运行环境,需在流水线脚本中提前安装Chrome运行所需的依赖库,避免缺少系统组件导致启动失败。
内容的提问来源于stack exchange,提问作者Kyle
相关产品推荐
相关产品推荐

