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

GitHub Action运行UI模式Capybara测试Chrome启动失败问题咨询

问题1:GitHub Action环境中是否可以使用有头模式Chrome?

可以,但默认的Ubuntu运行环境无桌面显示层,直接启动有头模式Chrome会因为没有输出载体崩溃,就是你遇到的DevToolsActivePort文件不存在报错的核心原因。如果必须使用有头模式,需要先在环境中配置虚拟显示服务Xvfb模拟显示输出。

问题2:当前GitHub Chrome相关配置存在哪些问题?

结合报错信息,常见的配置错误包括以下几项:

  • 未添加--no-sandbox启动参数:GitHub Action运行环境的用户权限受限,Chrome默认的沙箱机制会直接导致启动失败
  • 未添加--disable-dev-shm-usage启动参数:运行环境的共享内存空间默认很小,无该参数会导致Chrome运行时内存不足崩溃
  • 若未配置虚拟显示服务却直接使用有头模式:未启动Xvfb也未配置Chrome无头模式,会直接触发启动失败报错
  • Chrome和ChromeDriver版本不匹配:如果手动安装了非预装版本的Chrome或ChromeDriver,版本不一致也会导致启动异常
问题3:是否需要将GitHub Action中安装的ChromeDriver路径传入配置文件?如果需要如何获取该安装路径?
  • 通常不需要手动传入:GitHub官方的Ubuntu运行环境已经预装了和系统Chrome版本完全匹配的ChromeDriver,且已加入系统PATH,Selenium会自动识别调用。
  • 如果需要手动指定路径,可以在Workflow中执行which chromedriver命令获取安装路径,默认路径为/usr/bin/chromedriver或/usr/local/bin/chromedriver。获取路径后可以通过环境变量传递给Capybara配置,示例如下:
    1. 在Workflow中写入环境变量:
    - name: Set ChromeDriver path
      run: echo "CHROMEDRIVER_PATH=$(which chromedriver)" >> $GITHUB_ENV
    
    1. 在Capybara配置中读取环境变量指定路径:
    Selenium::WebDriver::Chrome.driver_path = ENV['CHROMEDRIVER_PATH'] if ENV['CHROMEDRIVER_PATH']
    
推荐解决方案

优先使用Chrome 112版本之后推出的新无头模式,该模式的行为和有头模式完全一致,不需要额外配置虚拟显示服务,稳定性更高,Capybara配置示例如下:

Capybara.register_driver :github_chrome do |app|
  chrome_options = Selenium::WebDriver::Chrome::Options.new
  # 适配GitHub Action运行环境的必需参数
  chrome_options.add_argument('--no-sandbox')
  chrome_options.add_argument('--disable-dev-shm-usage')
  chrome_options.add_argument('--disable-gpu')
  # 新无头模式,和有头模式行为一致
  chrome_options.add_argument('--headless=new')
  chrome_options.add_argument('--window-size=1920,1080')
  Capybara::Selenium::Driver.new(app, browser: :chrome, options: chrome_options)
end

Capybara.default_driver = :github_chrome
Capybara.javascript_driver = :github_chrome

不需要修改Workflow配置,使用默认预装的Chrome和ChromeDriver即可正常运行。

内容的提问来源于stack exchange,提问作者automation-novice

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:45:00