Laravel Dusk无法运行:更新后所有测试报错求助
解决Laravel Dusk测试中ChromeDriver版本不兼容问题
你遇到的核心问题是ChromeDriver与Chrome浏览器版本不匹配:错误提示里的ChromeDriver 2.33要求Chrome版本≥60.0.3112.0,但你的Vagrant虚拟机里要么没装Chrome,要么版本低于要求。结合你的环境(macOS本地+Ubuntu Vagrant虚拟机),下面是具体解决方案:
第一步:在Vagrant虚拟机中安装/更新Chrome浏览器
Dusk依赖Chrome或Chromium运行,所有测试都在虚拟机里执行,先确保虚拟机里有符合版本要求的Chrome:
- 登录到你的Vagrant虚拟机:
vagrant ssh - 添加Google Chrome的软件源(针对Ubuntu系统):
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list - 更新软件包并安装稳定版Chrome:
sudo apt-get update sudo apt-get install google-chrome-stable - 验证Chrome版本(确保版本≥60):
google-chrome --version
第二步:更新Laravel Dusk的ChromeDriver
Laravel Dusk提供了一键安装对应版本ChromeDriver的命令,不用手动下载:
- 切换到你的项目根目录(虚拟机里的项目路径):
cd /path/to/your/laravel/project - 运行Dusk的ChromeDriver安装命令,它会自动检测当前Chrome版本并下载匹配的驱动:
如果自动检测失败,可手动指定Chrome版本号(比如你查到的版本是114,就运行):php artisan dusk:chrome-driverphp artisan dusk:chrome-driver 114 - 确保ChromeDriver有执行权限:
chmod +x ./vendor/laravel/dusk/bin/chromedriver-linux
第三步:配置Dusk使用正确的Chrome路径(可选)
如果运行测试时仍找不到Chrome,可修改Dusk配置文件指定Chrome二进制路径:
打开项目根目录下的config/dusk.php文件,找到chrome配置项,修改binary为虚拟机里Chrome的实际路径:
'chrome' => [ 'binary' => '/usr/bin/google-chrome-stable', 'options' => [ '--disable-gpu', '--headless', '--no-sandbox', // 虚拟机环境下建议添加,避免权限限制 ], ],
第四步:测试Dusk是否正常运行
最后运行Dusk测试验证问题是否解决:
php artisan dusk
内容的提问来源于stack exchange,提问作者Oleg Kruglov
相关产品推荐
相关产品推荐

