我无法让 Laravel dusk 运行。我搜索过互联网并尝试了几乎所有方法。我希望有人知道这个技巧。
为了排除任何自我引入的问题,我在一个全新的 Laravel 项目中声明:
curl -s "https://laravel.build/example-app" | bash
。我使用的是 Macbook Air(M1 芯片),因此我必须更改 docker-compose.yml
并将 platform=linux/amd64
添加到容器中。此后运行 ./vendor/bin/sail build
并启动容器。接下来安装 Dusk:./vendor/bin/sail composer require --dev laravel/dusk
并按照文档运行安装命令 (./vendor/bin/sail artisan dusk:install
)。
此时,尚未对任何文件进行任何其他修改。 Laravel Dusk 附带默认浏览器测试。 (tests/Browser/ExampleTest.php) 当我运行命令
./vendor/bin/sail dusk
时,将显示以下错误:
1) Tests\Browser\ExampleTest::testBasicExample
Facebook\WebDriver\Exception\SessionNotCreatedException: Could not start a new session. Error while creating session with the driver service. Stopping driver service: Could not start a new session. Response code 500. Message: unknown error: Chrome failed to start: crashed.
(chrome not reachable)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Build info: version: '4.1.1', revision: 'e8fcc2cecf'
System info: host: '64671e354051', ip: '192.168.32.3', os.name: 'Linux', os.arch: 'amd64', os.version: '5.10.76-linuxkit', java.version: '11.0.13'
Driver info: driver.version: unknown
Build info: version: '4.1.1', revision: 'e8fcc2cecf'
System info: host: '64671e354051', ip: '192.168.32.3', os.name: 'Linux', os.arch: 'amd64', os.version: '5.10.76-linuxkit', java.version: '11.0.13'
Driver info: driver.version: unknown
/var/www/html/vendor/php-webdriver/webdriver/lib/Exception/WebDriverException.php:125
/var/www/html/vendor/php-webdriver/webdriver/lib/Remote/HttpCommandExecutor.php:372
/var/www/html/vendor/php-webdriver/webdriver/lib/Remote/RemoteWebDriver.php:131
/var/www/html/tests/DuskTestCase.php:46
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:219
/var/www/html/vendor/laravel/framework/src/Illuminate/Support/helpers.php:243
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:220
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:98
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:66
/var/www/html/tests/Browser/ExampleTest.php:21
./vendor/laravel/dusk/bin/
中的文件具有正确的权限。./vendor/bin/sail artisan dusk:chrome-driver --all
=> ChromeDriver binary successfully installed for version 100.0.4896.60.
。但会显示相同的黄昏错误。./vendor/bin/sail bash
=> ./vendor/laravel/dusk/bin/chromedriver-linux
。这会导致错误:./vendor/laravel/dusk/bin/chromedriver-linux: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory
我找到了另一篇 StackOverflow 帖子,通过 sail root-shell 安装以下软件包来解决此问题:
apt update; apt install libnss3-dev libgdk-pixbuf2.0-dev libgtk-3-dev libxss-dev;
。现在 chromedriver-linux 可以正常启动了。 Dusk 仍然失败并出现同样的错误。
有人知道吗?
我在运行时遇到同样的错误
sail artisan dusk
。
当开始使用
sail dusk
时,一切正常。
在经历了漫长而疲惫的尝试让 Sail/Docker 工作之后,现在已经到了 Xdebug/VSCode 和单元测试开始工作的地步......
下一个是“黄昏”
$ sail dusk
错误命令“dusk”未定义。
所有设置如下: https://laravel.com/docs/10.x/sail#laravel-dusk
在我致力于学习 Laravel 之前,我真的想让 Sail 中的一切都正常工作。谷歌上没有太多关于这个问题的信息。