在使用 Sail 的新 Laravel 项目上明确安装 Dusk 后,会抛出“连接被拒绝”错误
./vendor/bin/sail artisan dusk
PHPUnit 9.5.4 by Sebastian Bergmann and contributors.
E 1 / 1 (100%)
Time: 00:00.855, Memory: 20.00 MB
There was 1 error:
1) Tests\Browser\ExampleTest::testBasicExample
Facebook\WebDriver\Exception\WebDriverCurlException: Curl error thrown for http POST to /session with params: {"capabilities":{"firstMatch":[{"browserName":"chrome","goog:chromeOptions":{"args":["--window-size=1920,1080","--disable-gpu","--headless"]}}]},"desiredCapabilities":{"browserName":"chrome","platform":"ANY","chromeOptions":{"args":["--window-size=1920,1080","--disable-gpu","--headless"]}}}
Failed to connect to localhost port 9515: Connection refused
/var/www/html/vendor/php-webdriver/webdriver/lib/Remote/HttpCommandExecutor.php:332
/var/www/html/vendor/php-webdriver/webdriver/lib/Remote/RemoteWebDriver.php:135
/var/www/html/tests/DuskTestCase.php:46
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:218
/var/www/html/vendor/laravel/framework/src/Illuminate/Support/helpers.php:234
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:219
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:97
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:65
/var/www/html/tests/Browser/ExampleTest.php:21
ERRORS!
Tests: 1, Assertions: 0, Errors: 1.
我遵循了在 Sail Docs 和 Dusk Docs 中找到的所有说明,没有进行任何更改。我的 docker 环境已完全清除 Laravel Sail 项目使用的旧图像和容器。
乍一看,我尝试在仅运行黄昏的项目上编辑任何内容,因此 APP_URL 是 .env 文件上的默认值
APP_URL=http://selenium.test
但是,在我阅读了 Dusk Docs 上的文档后,下面的句子“下一步,在应用程序的 .env 文件中设置 APP_URL 环境变量。该值应与您在浏览器中用于访问应用程序的 URL 相匹配。”我把它设置为我在浏览器上使用的那个
APP_URL=http://localhost
curl -s "https://laravel.build/selenium?with=selenium" | bash
cd selenium && ./vendor/bin/sail up -d
./vendor/bin/sail composer require --dev laravel/dusk
./vendor/bin/sail artisan dusk:install
./vendor/bin/sail artisan dusk
我不明白为什么会出现这个问题
这是一个老问题,所以你可能(我希望)不再尝试解决这个问题。我一直在尝试解决另一个问题,但认为我可以提供一些建议。
首先,在使用 Sail 时,要运行 Dusk,您应该使用:
./vendor/bin/sail dusk
该命令中没有
artisan
。
其次,对于 Sail 的默认安装,应用程序的容器名称是
laravel.test
,因此这应该是在 APP_URL
环境变量中使用的值。