Laravel Dusk: Facebook\WebDriver\Exception\UnknownErrorException: unknown error: net::ERR_CONNECTION_REFUSED
Laravel Dusk: Facebook\WebDriver\Exception\UnknownErrorException: unknown error: net::ERR_CONNECTION_REFUSED
运行 php artisan dusk 得到错误:
Facebook\WebDriver\Exception\UnknownErrorException: unknown error: net::ERR_CONNECTION_REFUSED
(Session info: headless chrome=85.0.4183.83)
版本:
- OS: Windows 10 v1903 build 18362.1016
- Chrome: 85.0.4183.83
- Laravel:v6.18.37
- Dusk: v5.11.0
- PHPunit:v8.5.8
尝试过:
- 禁用防火墙
- 将测试网站设置为使用本地主机(原为 myapp.local)
- 可以使用 Chrome 浏览器访问所有页面
- 检查 vendor/laravel/dusk/bin/chromedriver-win.exe 是否可执行 (-rwxr-xr-x)
- php artisan route:clear
- php artisan cache:clear
- php artisan config:clear
- 作曲家dump-autoload
- google "Facebook\WebDriver\Exception\UnknownErrorException: 未知错误: net::ERR_CONNECTION_REFUSED"
服务器 localhost:9515 在测试执行时似乎是 运行,因为我在 Chrome 中尝试时得到以下响应:
{
value: {
error: "unknown command",
message: "unknown command: unknown command: ",
stacktrace: "Backtrace: Ordinal0 [0x0037D383+3134339] Ordinal0 [0x0026A171+2007409] Ordinal0 [0x0010AEE8+569064] Ordinal0 [0x000AD12C+184620] Ordinal0 [0x000ACF0A+184074] Ordinal0 [0x00081FD7+8151] Ordinal0 [0x00082496+9366] Ordinal0 [0x00082B40+11072] Ordinal0 [0x00280CD9+2100441] GetHandleVerifier [0x004EB75A+1396954] GetHandleVerifier [0x004EB3D9+1396057] GetHandleVerifier [0x004F7126+1444518] GetHandleVerifier [0x004EBCE8+1398376] Ordinal0 [0x00277F51+2064209] Ordinal0 [0x00081D35+7477] Ordinal0 [0x00081991+6545] GetHandleVerifier [0x006BF31C+3312796] BaseThreadInitThunk [0x76986359+25] RtlGetAppContainerNamedObjectPath [0x771D7C24+228] RtlGetAppContainerNamedObjectPath [0x771D7BF4+180] (No symbol) [0x00000000] ",
}
}
Dusk测试用例驱动程序:
/**
* Create the RemoteWebDriver instance.
*
* @return \Facebook\WebDriver\Remote\RemoteWebDriver
*/
protected function driver()
{
$options = (new ChromeOptions)->addArguments([
'--disable-gpu',
'--headless',
'--window-size=1920,1080',
]);
return RemoteWebDriver::create(
'http://localhost:9515', DesiredCapabilities::chrome()->setCapability(
ChromeOptions::CAPABILITY, $options
)
);
}
有没有人知道还可以尝试什么?或者有其他人知道解决方案吗?
按照以下步骤修复了它:
- 删除供应商文件夹并删除 composer.lock
- php composer.phar 安装
- 检查您当前的 Chrome 版本 - 您可以前往 https://www.whatismybrowser.com/detect/what-version-of-chrome-do-i-have
进行检查
- 从 http://chromedriver.chromium.org/downloads
下载与您当前 Chrome 版本匹配的 Chrome WebDriver
- 从 vendor\laravel\dusk\bin 中手动删除旧的 chromedriver-win.exe 版本并将您下载的版本放在那里。请注意,您必须重命名该文件。
执行完上面的第 2 步后,错误消息发生了变化,提示了剩余的步骤。
我遇到了同样的问题,对我来说有效的方法是将 .env 文件中的 APP_URL
参数设置为:
APP_URL=http://127.0.0.1:8000
因为那是我的 php artisan serve
也可以为网站提供服务的同一个端口,即
Laravel development server started: http://127.0.0.1:8000
我将此内容发布给可能面临与我相同问题的其他人。
原来LaravelDusk希望我们在运行php artisan dusk
之前运行php artisan serve
! ERR_CONNECTION_REFUSED
错误是指无法连接到应用程序本身的http://localhost:8000
URL,因为它不是运行ning.
这确实有道理,但我根本不知道,文档对此也不清楚(我不得不推断)。然而,ChromeDriver 在执行时由 Dusk 自动启动。
要修复此错误,您需要将 .env 文件 APP_URL 参数更新到您的本地服务器 url,如下所示
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:XZoWMB3aWom/V3iZy870VSQjMsBdGCHYdWbRuNb6aY0=
APP_DEBUG=true
APP_URL=http://127.0.0.1:8000 #(This can be url to your local environment)
对我来说,错误在设置 .env 后消失了 APP_ENV=development
我保留了 .env.dusk.development 也一样。
我在安装新的 Laravel 8.77 后试图 运行 the dusk 并遇到以下错误,并通过创建新的 .env.dusk.local
文件找到了解决方案。您必须根据当前环境创建 .env.dusk.{environment}
。
在你新创建的 env 文件中,你需要为 ex 定义适当的 URL。 http://testing-laravel.local 通过创建虚拟主机。
There was 1 error:
1) Tests\Browser\ExampleTest::testBasicExample
Facebook\WebDriver\Exception\UnknownErrorException: unknown error: net::ERR_CONNECTION_REFUSED
(Session info: headless chrome=96.0.4664.110)
运行 php artisan dusk 得到错误:
Facebook\WebDriver\Exception\UnknownErrorException: unknown error: net::ERR_CONNECTION_REFUSED
(Session info: headless chrome=85.0.4183.83)
版本:
- OS: Windows 10 v1903 build 18362.1016
- Chrome: 85.0.4183.83
- Laravel:v6.18.37
- Dusk: v5.11.0
- PHPunit:v8.5.8
尝试过:
- 禁用防火墙
- 将测试网站设置为使用本地主机(原为 myapp.local)
- 可以使用 Chrome 浏览器访问所有页面
- 检查 vendor/laravel/dusk/bin/chromedriver-win.exe 是否可执行 (-rwxr-xr-x)
- php artisan route:clear
- php artisan cache:clear
- php artisan config:clear
- 作曲家dump-autoload
- google "Facebook\WebDriver\Exception\UnknownErrorException: 未知错误: net::ERR_CONNECTION_REFUSED"
服务器 localhost:9515 在测试执行时似乎是 运行,因为我在 Chrome 中尝试时得到以下响应:
{
value: {
error: "unknown command",
message: "unknown command: unknown command: ",
stacktrace: "Backtrace: Ordinal0 [0x0037D383+3134339] Ordinal0 [0x0026A171+2007409] Ordinal0 [0x0010AEE8+569064] Ordinal0 [0x000AD12C+184620] Ordinal0 [0x000ACF0A+184074] Ordinal0 [0x00081FD7+8151] Ordinal0 [0x00082496+9366] Ordinal0 [0x00082B40+11072] Ordinal0 [0x00280CD9+2100441] GetHandleVerifier [0x004EB75A+1396954] GetHandleVerifier [0x004EB3D9+1396057] GetHandleVerifier [0x004F7126+1444518] GetHandleVerifier [0x004EBCE8+1398376] Ordinal0 [0x00277F51+2064209] Ordinal0 [0x00081D35+7477] Ordinal0 [0x00081991+6545] GetHandleVerifier [0x006BF31C+3312796] BaseThreadInitThunk [0x76986359+25] RtlGetAppContainerNamedObjectPath [0x771D7C24+228] RtlGetAppContainerNamedObjectPath [0x771D7BF4+180] (No symbol) [0x00000000] ",
}
}
Dusk测试用例驱动程序:
/**
* Create the RemoteWebDriver instance.
*
* @return \Facebook\WebDriver\Remote\RemoteWebDriver
*/
protected function driver()
{
$options = (new ChromeOptions)->addArguments([
'--disable-gpu',
'--headless',
'--window-size=1920,1080',
]);
return RemoteWebDriver::create(
'http://localhost:9515', DesiredCapabilities::chrome()->setCapability(
ChromeOptions::CAPABILITY, $options
)
);
}
有没有人知道还可以尝试什么?或者有其他人知道解决方案吗?
按照以下步骤修复了它:
- 删除供应商文件夹并删除 composer.lock
- php composer.phar 安装
- 检查您当前的 Chrome 版本 - 您可以前往 https://www.whatismybrowser.com/detect/what-version-of-chrome-do-i-have 进行检查
- 从 http://chromedriver.chromium.org/downloads 下载与您当前 Chrome 版本匹配的 Chrome WebDriver
- 从 vendor\laravel\dusk\bin 中手动删除旧的 chromedriver-win.exe 版本并将您下载的版本放在那里。请注意,您必须重命名该文件。
执行完上面的第 2 步后,错误消息发生了变化,提示了剩余的步骤。
我遇到了同样的问题,对我来说有效的方法是将 .env 文件中的 APP_URL
参数设置为:
APP_URL=http://127.0.0.1:8000
因为那是我的 php artisan serve
也可以为网站提供服务的同一个端口,即
Laravel development server started: http://127.0.0.1:8000
我将此内容发布给可能面临与我相同问题的其他人。
原来LaravelDusk希望我们在运行php artisan dusk
之前运行php artisan serve
! ERR_CONNECTION_REFUSED
错误是指无法连接到应用程序本身的http://localhost:8000
URL,因为它不是运行ning.
这确实有道理,但我根本不知道,文档对此也不清楚(我不得不推断)。然而,ChromeDriver 在执行时由 Dusk 自动启动。
要修复此错误,您需要将 .env 文件 APP_URL 参数更新到您的本地服务器 url,如下所示
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:XZoWMB3aWom/V3iZy870VSQjMsBdGCHYdWbRuNb6aY0=
APP_DEBUG=true
APP_URL=http://127.0.0.1:8000 #(This can be url to your local environment)
对我来说,错误在设置 .env 后消失了 APP_ENV=development
我保留了 .env.dusk.development 也一样。
我在安装新的 Laravel 8.77 后试图 运行 the dusk 并遇到以下错误,并通过创建新的 .env.dusk.local
文件找到了解决方案。您必须根据当前环境创建 .env.dusk.{environment}
。
在你新创建的 env 文件中,你需要为 ex 定义适当的 URL。 http://testing-laravel.local 通过创建虚拟主机。
There was 1 error:
1) Tests\Browser\ExampleTest::testBasicExample
Facebook\WebDriver\Exception\UnknownErrorException: unknown error: net::ERR_CONNECTION_REFUSED
(Session info: headless chrome=96.0.4664.110)