Has*_*him 2 php laravel selenium-webdriver laravel-dusk
在最后一天左右,我开始看到我的 Laravel Dusk 测试在我的 CI/CD 环境中失败(GitHub Actions)。
突然,运行一直运行良好的命令:
php artisan dusk:chrome-driver `/opt/google/chrome/chrome --version | cut -d " " -f3 | cut -d "." -f1`
Run Code Online (Sandbox Code Playgroud)
..失败并出现错误:
file_get_contents(https://chromedriver.storage.googleapis.com/LATEST_RELEASE_116):无法打开流:HTTP请求失败!HTTP/1.1 404 未找到
尝试通过强制版本 114 来解决此问题:
php artisan install:chrome-driver 114
Run Code Online (Sandbox Code Playgroud)
...失败并出现错误:
Facebook\WebDriver\Exception\SessionNotCreatedException:会话未创建:此版本的 ChromeDriver 仅支持 Chrome 版本 114
我该如何解决这个问题并让我的测试再次开始通过?
上游详细讨论了此问题- 简而言之,404 是由Google从版本 115 开始更改 Chrome 二进制文件的源 URL引起的。
特别是对于 Laravel Dusk,这似乎已在此处的Dusk 问题中得到修复,因此理论上正确修复此问题所需的只是 a composer require laravel/dusk --with-all-dependencies,但至少在我的情况下,这将更新很多依赖项,并且似乎很可能会破坏我的应用。我曾就这个问题询问过对于旧版 Laravel 应用程序(我的例子是 Laravel 8)来说,最好的做法是什么,但与此同时:将Chrome/Chromium 浏览器和 Chrome 驱动程序降级到 v114 应该就足够了解决方法。
这说起来容易做起来难,我花了一天多的时间才弄清楚如何在 GitHub Actions 上成功完成此操作,但将以下步骤添加到您的工作流程文件应该是让 CI/CD 管道再次运行所需的全部内容:
- name: Downgrade Chrome browser to v114
uses: browser-actions/setup-chrome@v1
with:
chrome-version: 1134343 # Last commit number for Chrome v114
id: setup-chrome
- run: sudo ln -fs ${{ steps.setup-chrome.outputs.chrome-path }} /usr/bin/google-chrome
- name: Downgrade Chrome driver to v114
run: php artisan dusk:chrome-driver `/usr/bin/google-chrome --version | cut -d " " -f3 | cut -d "." -f1`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1015 次 |
| 最近记录: |