Laravel Dusk/GitHub Actions 中 Chrome 驱动程序出现“404 Not Found”和“会话未创建”错误

问题描述 投票:0回答:1

在最后一天左右,我开始看到我的 Laravel Dusk 测试在我的 CI/CD 环境中失败(GitHub Actions)。

突然,运行一直运行良好的命令:

php artisan dusk:chrome-driver `/opt/google/chrome/chrome --version | cut -d " " -f3 | cut -d "." -f1`

..失败并出现以下错误:

file_get_contents(https://chromedriver.storage.googleapis.com/LATEST_RELEASE_116):无法打开流:HTTP 请求失败! HTTP/1.1 404 未找到

尝试通过强制版本 114 来解决此问题:

php artisan install:chrome-driver 114

...失败并出现以下错误:

Facebook\WebDriver\Exception\SessionNotCreatedException:会话未创建:此版本的 ChromeDriver 仅支持 Chrome 版本 114

我怎样才能解决这个问题并让我的测试再次开始通过?

php laravel selenium-webdriver laravel-dusk
1个回答
0
投票

此问题在上游详细讨论 - 简而言之,404 似乎是由 Google 从 v115 开始更改 Chrome 二进制文件和驱动程序的源 URL 引起的(新 URL 记录在此处)。

特别是对于 Laravel Dusk,这似乎已经在这个 Dusk 问题中得到了解决,所以理论上正确解决这个问题所需的只是

composer update require --with-all-dependencies
,但至少在我的情况下,这会更新很多 的依赖关系,似乎很可能会破坏我的应用程序。我已经询问过这个问题对于旧版 Laravel 应用程序(我的例子是 Laravel 8)的最佳行动方案是什么,但与此同时,以下应该是一个足够好的解决方法,可以让您再次开始运行构建:

php artisan dusk:chrome-driver `/usr/bin/google-chrome --version | cut -d " " -f3 | cut -d "." -f1`

注意

/user/bin/google-chrome
路径而不是
opt/google/chrome/chrome
。如果此命令仍然对您不起作用,请将此路径替换为您自己的 CI/CD 环境中错误报告的路径。

© www.soinside.com 2019 - 2024. All rights reserved.