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

问题描述

运行php artisan黄昏时出现错误:

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

版本:

  • 操作系统:Windows 10 v1903内部版本18362.1016
  • Chrome:85.0.4183.83
  • Laravel:v6.18.37
  • 黄昏: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
  • composer 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] ",}
}

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
        )
    );
}

有人对尝试其他方法有任何线索吗?还是其他人知道解决方案?

解决方法

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

APP_URL=http://localhost:8000

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

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

我把这个发布给可能和我面临同样问题的其他人。

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

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

,

按照以下步骤修复:

  1. 删除供应商文件夹并删除co​​mposer.lock
  2. php composer.phar安装
  3. 检查您当前的Chrome版本-您可以转到https://www.whatismybrowser.com/detect/what-version-of-chrome-do-i-have
  4. 进行检查
  5. http://chromedriver.chromium.org/downloads下载与您当前的Chrome版本匹配的WebDriver for Chrome
  6. 从vendor \ laravel \ dusk \ bin中手动删除旧的chromedriver-win.exe版本,然后将您下载的版本放在那里。请注意,您将不得不重命名该文件。

执行完上面的步骤2后,错误消息发生了变化,提示了剩余的步骤。

,

要修复此错误,您需要将 .env 文件 APP_URL 参数更新为您的本地服务器 url,如下所示

requirejs.config({
    baseUrl: 'scripts',paths: {
        app: 'app/app',calculator:'app/calculator',square : 'app/square'
    },shim: {
        'square': {
            deps: ['calculator'],// square depends on calculator
            exports : 'square'
        }
    }
});

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...