黄昏版本-8.2.5
Laravel 版本 - 10.35.0
PHP 版本 - 8.2.13
PHPUnit 版本 - 10.5.2
我一直在使用 Chrome-for-Testing 中的 Chromedriver 和 Laravel Dusk 来测试我们的应用程序。直到最近,我一直在对我的机器上安装的常规 Chrome 浏览器版本进行测试。这一切都很好,直到可用的 chromedriver 版本与我的常规 chrome 浏览器版本不同步,并且我收到了可怕的 Failed to connect to localhost 错误
Curl error thrown for http POST to /session with params: {"capabilities":{"firstMatch":[{"browserName":"chrome","goog:chromeOptions":{"args":["--window-size=1920,1080"]}}]},"desiredCapabilities":{"browserName":"chrome","platform":"ANY","goog:chromeOptions":{"args":["--window-size=1920,1080"]}}}
Failed to connect to localhost port 9515 after 1 ms: Couldn't connect to server
据我了解,答案是获取 CfT 浏览器的匹配版本进行测试,例如获取 128.0.6613.137 ChromeDriver 和 128.0.6613.137 CfT 浏览器。
我这样做了,但我无法让 Dusk 使用那个 CfT 浏览器。
我尝试过的
我将二进制位置(我认为是 CfT 浏览器位置而不是 Chromedriver 位置)设置为 DuskTestCase.php > 驱动程序方法;
$options->setBinary('/Applications/Google\Chrome\for\Testing.app/Contents/MacOS/Google\Chrome\for\Testing');
结果(错误)
我的所有测试仍然因卷曲错误而失败;
Curl error thrown for http POST to /session with params: {"capabilities":{"firstMatch":[{"browserName":"chrome","goog:chromeOptions":{"binary":"/Applications/Google\ Chrome\ for\ Testing.app/Contents/MacOS/Google\ Chrome\ for\ Testing","args":["--window-size=1920,1080"]}}]},"desiredCapabilities":{"browserName":"chrome","platform":"ANY","goog:chromeOptions":{"binary":"/Applications/Google\ Chrome\ for\ Testing.app/Contents/MacOS/Google\ Chrome\ for\ Testing","args":["--window-size=1920,1080"]}}}
Failed to connect to localhost port 9515 after 0 ms: Couldn't connect to server
我尝试过的其他事情
我尝试将路径更改为明显不正确的路径,但出现了相同的错误。我尝试省略 CfT 浏览器二进制文件的路径,但得到了相同的错误
其他想法
这可能不是 chromedriver 和浏览器不同步的问题。这始于“无法连接到本地主机”错误,过去这是因为 chromedriver 和安装的 chrome 浏览器不同步。我假设如果 ChromeDriver 和 Chrome 浏览器同步,问题就会得到解决。但有点奇怪的是,当我设置一个明显不正确的 CfT 浏览器路径时,我没有收到错误。
我在黄昏测试中也遇到了同样的问题。经过一番查找后,我终于在仓库中找到了这个 PR:https://github.com/laravel/dusk/pull/1124.
在我的 DuskTestCase.php 中,我手动调用
static::startChromeDriver()
,因此我需要在调用中实现相同的更改并指定端口:static::startChromeDriver(['--port=9515']);
不确定这对您来说是否相同,但可能值得一看。