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

Laravel Dusk中Chrome Driver在GitHub Actions环境运行失败,求解决方案

解决Laravel Dusk在GitHub Actions中测试失败的问题

问题根源

Chrome 116版本发布后,Google将ChromeDriver的下载源从chromedriver.storage.googleapis.com迁移到了Chrome for Testing的新仓库,旧版Laravel Dusk仍在使用旧源,导致无法找到116+版本的ChromeDriver;同时CI环境中的Chrome会自动更新到最新版,强制安装旧版ChromeDriver会出现版本不匹配的报错。

修复方案

方案1:升级Laravel Dusk到适配新源的版本

新版Dusk已经适配了Chrome for Testing的下载地址,直接升级即可解决:

  1. 更新Dusk依赖:
    composer require --dev laravel/dusk:^7.0
    
    (注:版本号需与你的Laravel版本对应,Laravel 10对应Dusk 7.x,Laravel 9对应Dusk 6.x)
  2. 重新发布Dusk配置:
    php artisan dusk:install
    
  3. 继续使用原命令安装对应版本的ChromeDriver:
    php artisan dusk:chrome-driver `/opt/google/chrome/chrome --version | cut -d " " -f3 | cut -d "." -f1`
    

方案2:手动下载匹配版本的ChromeDriver(不升级Dusk)

如果暂时无法升级Dusk,可直接从新仓库下载对应Chrome版本的ChromeDriver:

  1. 在GitHub Actions步骤中获取当前Chrome的完整版本号:
    CHROME_VERSION=$(google-chrome --version | grep -oP '\d+\.\d+\.\d+\.\d+')
    
  2. 下载并替换Dusk使用的ChromeDriver:
    curl -LO "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/${CHROME_VERSION}/linux64/chromedriver-linux64.zip"
    unzip chromedriver-linux64.zip
    mv chromedriver-linux64/chromedriver ./vendor/laravel/dusk/bin/chromedriver-linux
    chmod +x ./vendor/laravel/dusk/bin/chromedriver-linux
    

方案3:锁定CI环境中的Chrome版本

避免Chrome自动更新导致版本不匹配,在GitHub Actions中指定Chrome版本:

- name: 安装指定版本Chrome
  uses: actions/setup-chrome@v1
  with:
    chrome-version: '116.0.5845.96' # 替换为稳定的Chrome版本号

之后再安装对应版本的ChromeDriver(可使用方案1的命令或方案2的手动方法)。

内容的提问来源于stack exchange,提问作者Hashim Aziz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 14:05:24