Laravel Dusk:Facebook\WebDriver\Exception\UnknownErrorException:未知错误:net::ERR_CONNECTION_REFUSED

Posted

技术标签:

【中文标题】Laravel Dusk:Facebook\\WebDriver\\Exception\\UnknownErrorException:未知错误:net::ERR_CONNECTION_REFUSED【英文标题】:Laravel Dusk: Facebook\WebDriver\Exception\UnknownErrorException: unknown error: net::ERR_CONNECTION_REFUSEDLaravel Dusk:Facebook\WebDriver\Exception\UnknownErrorException:未知错误:net::ERR_CONNECTION_REFUSED 【发布时间】:2020-12-20 02:12:12 【问题描述】:

运行php artisan黄昏得到错误:

Facebook\WebDriver\Exception\UnknownErrorException: unknown error: net::ERR_CONNECTION_REFUSED
  (Session info: headless chrome=85.0.4183.83)

版本:

操作系统:Windows 10 v1903 build 18362.1016 铬:85.0.4183.83 Laravel:v6.18.37 黄昏:v5.11.0 phpunit:v8.5.8

试过了:

禁用防火墙 将测试网站设置为使用 localhost(原为 myapp.local) 可以使用 Chrome 浏览器访问所有页面 检查 vendor/laravel/dusk/bin/chromedriver-win.exe 是否可执行 (-rwxr-xr-x) php 工匠路线:清除 php artisan 缓存:清除 php 工匠配置:清除 作曲家转储自动加载 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
        )
    );

有人知道还有什么可以尝试的吗?或者有其他人知道解决方案吗?

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,对我来说有效的方法是将 .env 文件中的 APP_URL 参数设置为:

APP_URL=http://127.0.0.1:8000

因为那是我的php artisan serve 也将服务于网站的同一端口,即

Laravel development server started: http://127.0.0.1:8000

【讨论】:

【参考方案2】:

我把这个放在那里,以供可能面临与我相同问题的其他人使用。

事实证明 Laravel Dusk 希望我们在运行 php artisan dusk 之前运行 php artisan serveERR_CONNECTION_REFUSED 错误是指无法连接到应用程序本身的http://localhost:8000 URL,因为它没有运行。

这确实有道理,但我根本不知道,文档也不清楚(我不得不推断)。但是,ChromeDriver 会在执行时由 Dusk 自动启动。

【讨论】:

这对我有帮助,我也不明白为什么会这样,但它对我有用。 我将 Sail 用于我的开发环境。我还需要运行 php artisan serve 吗?【参考方案3】:

按照以下步骤修复它:

    删除供应商文件夹并删除 composer.lock php composer.phar 安装 检查您当前的 Chrome 版本 - 您可以前往 https://www.whatismybrowser.com/detect/what-version-of-chrome-do-i-have 进行检查 从http://chromedriver.chromium.org/downloads 下载与您当前 Chrome 版本相匹配的 WebDriver for Chrome 从 vendor\laravel\dusk\bin 中手动删除旧的 chromedriver-win.exe 版本,并将您下载的那个放在那里。请注意,您必须重命名文件。

执行上述第 2 步后,错误消息发生了变化,提示了其余步骤。

【讨论】:

我遇到了同样的错误,我尝试了上面的方法,但由于某种原因它没有解决问题。我也尝试使用php artisan optimize 清除缓存,但这也无济于事。 @Coola 感谢您的反馈。尽管它似乎有效,但我并不相信自己,因此没有将其标记为答案。希望有人能找到解决方案。 :)【参考方案4】:

要修复此错误,您需要将 .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)

【讨论】:

【参考方案5】:

对我来说,设置 .env APP_ENV=development 后错误消失了,我保持 .env.dusk.development 也一样。

【讨论】:

【参考方案6】:

我在安装新的 Laravel 8.77 后尝试运行黄昏,并遇到以下错误,并通过创建新的 .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)

【讨论】:

以上是关于Laravel Dusk:Facebook\WebDriver\Exception\UnknownErrorException:未知错误:net::ERR_CONNECTION_REFUSED的主要内容,如果未能解决你的问题,请参考以下文章

使用 phpunit.xml、.env.dusk.local 和 sqlite 内存数据库设置 Laravel 5.4 和 Dusk

Laravel dusk 安装 ChromeDriver 出错的解决办法

Laravel Dusk 错误:无法连接到 localhost 端口 9515:连接被拒绝

如何使用 Laravel Dusk 测试身份验证? [关闭]

Laravel CRUD 应用 Dusk vs PHPUnit

经过测试,chrome 进程仍然在 Docker 容器中的 Laravel Dusk