Laravel + sail + dusk => 错误:无法启动新会话 [...] Chrome 无法启动

问题描述 投票:0回答:2

我无法让 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. 
    。但会显示相同的黄昏错误。
  • 尝试直接运行 ChromeDriver:
    ./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 仍然失败并出现同样的错误。

有人知道吗?

selenium laravel-dusk laravel-sail
2个回答
1
投票

我在运行时遇到同样的错误

sail artisan dusk

当开始使用

sail dusk
时,一切正常。


0
投票

在经历了漫长而疲惫的尝试让 Sail/Docker 工作之后,现在已经到了 Xdebug/VSCode 和单元测试开始工作的地步......

下一个是“黄昏

$ sail dusk

错误命令“dusk”未定义。

所有设置如下: https://laravel.com/docs/10.x/sail#laravel-dusk

在我致力于学习 Laravel 之前,我真的想让 Sail 中的一切都正常工作。谷歌上没有太多关于这个问题的信息。

© www.soinside.com 2019 - 2024. All rights reserved.