运行php artisan dusch得到错误:
Facebook\WebDriver\Exception\UnknownErrorException: unknown error: net::ERR_CONNECTION_REFUSED
(Session info: headless chrome=85.0.4183.83)
版本:
- 操作系统:Windows 10 v1903
- 浏览器:85.0.4183.83
- Laravel:v6.18.37
- 黄昏:v5.11.0
- Phpunit:v8.5.8
尝试:
- 禁用防火墙
- 将测试网站设置为使用localhost(wasmyapp.local)
- 可以使用Chrome浏览器访问所有页面
- 检查vendor/laravel/dusk/bin/chromedriver-win.exe是否可执行(-rwxr-xr-x)
- php artisan route:clear
- php工匠缓存:清除
- php artisan config:clear
- composer 转储自动加载
- 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] ",
}
}
DuskTestCase驱动程序:
/**
* 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
)
);
}
有没有人知道还有什么可以尝试的?或者其他人知道解决方案吗?
8条答案
按热度按时间l2osamch1#
我遇到了同样的问题,对我来说,有效的方法是将.env文件中的
APP_URL
参数设置为:因为这是我的
php artisan serve
也将服务于网站的同一个端口。xqkwcwgp2#
我把这件事告诉那些可能和我面临同样问题的人。
事实证明Laravel Dusk希望我们在运行
php artisan dusk
之前运行php artisan serve
!ERR_CONNECTION_REFUSED
错误是指无法连接到应用程序本身的http://localhost:8000
URL,因为它没有运行。这确实有意义,但我根本不知道,文档对此也不清楚(我不得不推断)。然而,ChromeDriver在执行时由Dusk自动启动。
wlsrxk513#
在Laravel 9中唯一对我有帮助的是在
.env.dusk.local
文件中设置APP_URL=http://laravel.test
。oxosxuxt4#
通过以下步骤修复它:
1.删除vendor文件夹并删除composer.lock
1.检查您当前的Chrome版本-您可以通过访问https://www.whatismybrowser.com/detect/what-version-of-chrome-do-i-have查看
1.从http://chromedriver.chromium.org/downloads下载与当前Chrome版本匹配的Chrome WebDriver
1.从供应商\laravel\d黄昏\bin中手动删除旧的chromedriver-win.exe版本,并将您下载的版本放在那里。请注意,您必须重命名文件。
执行上述步骤2后,错误消息发生变化,提示执行其余步骤。
pxy2qtax5#
要修复此错误,您需要将.env文件APP_URL参数更新为本地服务器URL,如下所示
e4yzc0pl6#
对我来说,设置.env
APP_ENV=development
后错误消失了,我保持.env.dusk.development也是一样的。cu6pst1q7#
我试图在安装新的Laravel 8.77后运行黄昏,遇到了以下错误,并通过创建新的
.env.dusk.local
文件找到了解决方案。您必须根据当前环境创建.env.dusk.{environment}
。在新创建的env文件中,您需要为ex定义正确的URL。http://testing-laravel.local通过创建虚拟主机。
bxgwgixi8#
听起来很明显,不要像我一样,在尝试本地运行Dusk测试之前完全忘记启动开发服务器-如果运行测试的服务器没有启动,连接显然会被拒绝。无论您使用的是XAMPP还是
php artisan serve
,都要确保打开本地服务器。