Laravel Dusk 突然无法连接到本地服务器。
连接到远程服务器仍然有效。
使用当前的 macOS。
错误信息
PHPUnit\Framework\ExceptionWrapper
Curl error thrown for http POST to /session with params: {"capabilities":{"firstMatch":[{"browserName":"chrome","goog:chromeOptions":{"args":["--window-size=1920,1080","--disable-gpu"]}}]},"desiredCapabilities":{"browserName":"chrome","platform":"ANY","chromeOptions":{"args":["--window-size=1920,1080","--disable-gpu"]}}}
Failed to connect to localhost port 9515 after 0 ms: Couldn't connect to server
at vendor/php-webdriver/webdriver/lib/Remote/HttpCommandExecutor.php:346
342▕ if (is_array($params) && !empty($params)) {
343▕ $msg .= sprintf(' with params: %s', json_encode($params, JSON_UNESCAPED_SLASHES));
344▕ }
345▕
➜ 346▕ throw new WebDriverCurlException($msg . "\n\n" . $error);
347▕ }
348▕
349▕ $results = json_decode($raw_results, true);
350▕
Tests: 1 failed
Time: 0.24s
在使用 Laravel Dusk 运行测试之前启动本地服务器:
➜ php artisan serve
INFO Server running on [http://127.0.0.1:8000].
Press Ctrl+C to stop the server
卸载并重新安装没有帮助。
还尝试了其他事情但没有成功,请参阅:https://github.com/laravel/dusk/issues/1016
在我的例子中,这是由 Chrome 驱动程序版本 128 默认为不同端口引起的回归,并通过在
DuskTestCase.php
中明确指定它来修复。
更改此:
if (! static::runningInSail()) {
static::startChromeDriver();
}
...对此:
if (! static::runningInSail()) {
static::startChromeDriver(['--port=9515']);
static::startChromeDriver();
}
解决方案的功劳在此处。