Github Action CI/CD中Chrome无法启动问题求助
解决Github Action中Chrome无法启动的思路
1. 配置Chrome无头模式
CI环境无图形界面,必须给Chrome添加无头启动参数,同时补充适配CI环境的必要配置:
import { Builder, Capabilities } from 'selenium-webdriver'; import { Options } from 'selenium-webdriver/chrome'; const chromeOptions = new Options(); // 启用无头模式(新版Chrome推荐--headless=new) chromeOptions.addArguments('--headless=new'); // 绕过沙箱机制,解决CI权限限制 chromeOptions.addArguments('--no-sandbox'); // 避免/dev/shm内存不足问题 chromeOptions.addArguments('--disable-dev-shm-usage'); // 禁用GPU(CI环境不需要) chromeOptions.addArguments('--disable-gpu'); const driver = new Builder() .withCapabilities(Capabilities.chrome()) .setChromeOptions(chromeOptions) .build();
2. 确保Github Action环境配置正确
在你的Action YML文件中,明确安装Chrome及对应依赖,匹配本地Node版本:
jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: 配置Node.js环境 uses: actions/setup-node@v4 with: node-version: 20 # 需与本地开发环境Node版本一致 - name: 安装项目依赖 run: npm install - name: 安装Chrome浏览器 uses: browser-actions/setup-chrome@v1 with: chrome-version: stable - name: 运行自动化测试 run: npm test
3. 校验依赖版本兼容性
- 确保
selenium-webdriver版本与CI环境中Chrome版本兼容,建议使用最新稳定版的selenium依赖 - 本地与CI环境的Node、npm版本保持一致,避免依赖安装差异
4. 开启调试日志定位问题
若仍失败,在测试命令前添加调试日志输出,排查具体错误:
- name: 运行自动化测试 run: | export DEBUG=selenium-webdriver* npm test
5. 处理权限相关问题
Ubuntu runner默认用户权限有限,--no-sandbox参数必须添加,可绕过Chrome的沙箱验证,解决启动权限问题
内容的提问来源于stack exchange,提问作者Axel Alinsky
相关产品推荐
相关产品推荐

