繁体   English   中英

连接被拒绝:无法连接到 127.0.0.1 端口 4444:连接被拒绝 laravel 黄昏与 selenium 和 laradock

[英]Connection Refused : Failed to connect to 127.0.0.1 port 4444: Connection refused laravel dusk with selenium and laradock

我正在使用 laradock https://github.com/laradock/laradock进行开发环境设置。 在我尝试在环境中运行黄昏测试之前,一切看起来都很好。

这是命令php artisan dusk的 output

root@e686e0cbda43:/var/www/stability_v54# php artisan dusk --filter test_WhenEmptyFormIsSubmitted_ShowErrorMessages 
PHPUnit 6.5.14 by Sebastian Bergmann and contributors.

E                                                                   1 / 1 (100%)

Time: 28.59 seconds, Memory: 34.00MB

There was 1 error:

1) Tests\Browser\NurseRegisterTest::test_WhenEmptyFormIsSubmitted_ShowErrorMessages
Facebook\WebDriver\Exception\WebDriverCurlException: Curl error thrown for http POST to /session with params: {"desiredCapabilities":{"browserName":"chrome","platform":"ANY","chromeOptions":{"w3c":false,"binary":"","args":["--disable-gpu","--no-sandbox","--ignore-ssl-errors","--whitelisted-ips=\"\"","--headless"]}}}

Failed to connect to 127.0.0.1 port 4444: Connection refused

/var/www/stability_v54/vendor/facebook/webdriver/lib/Remote/HttpCommandExecutor.php:297
/var/www/stability_v54/vendor/facebook/webdriver/lib/Remote/RemoteWebDriver.php:144
/var/www/stability_v54/tests/DuskTestCase.php:64
/var/www/stability_v54/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:185
/var/www/stability_v54/vendor/laravel/framework/src/Illuminate/Support/helpers.php:765
/var/www/stability_v54/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:186
/var/www/stability_v54/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:92
/var/www/stability_v54/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:64
/var/www/stability_v54/tests/Browser/NurseRegisterTest.php:98

这是DuskTestCase

<?php

namespace Tests;

use Laravel\Dusk\TestCase as BaseTestCase;
use Facebook\WebDriver\Chrome\ChromeOptions;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;

abstract class DuskTestCase extends BaseTestCase
{
    use CreatesApplication;

    protected function setUp()
    {
        //Set wait env variables
        $this->quickWait  = env('QUICK_WAIT', false);
        $this->shortWait  = env('SHORT_WAIT', false);
        $this->mediumWait = env('MEDIUM_WAIT', false);
        $this->longWait   = env('LONG_WAIT', false);

        parent::setUp();

        foreach (static::$browsers as $browser) {
            $browser->driver->manage()->deleteAllCookies();
        }
    }

    /**
     * Prepare for Dusk test execution.
     *
     * @beforeClass
     * @return void
     */
    public static function prepare()
    {
        static::startChromeDriver();
    }

    /**
     * Create the RemoteWebDriver instance.
     *
     * @return \Facebook\WebDriver\Remote\RemoteWebDriver
     */
    protected function driver()
    {
        $arguments = [
            '--disable-gpu',
            '--no-sandbox',
            '--ignore-ssl-errors',
            '--whitelisted-ips=""',
        ];

        $headlessMode = env('DUSK_HEADLESS_MODE', false);

        if($headlessMode) {
            array_push($arguments, '--headless');
        }

        $options = (new ChromeOptions)->addArguments($arguments);

        return RemoteWebDriver::create(
            'http://127.0.0.1:4444', DesiredCapabilities::chrome()->setCapability(
                ChromeOptions::CAPABILITY, $options
            )
        );
    }
}

我有以下版本的 chrome 驱动程序和 selenium。

Chrome 版本 88.0.4324.96 Selenium 独立 v.3.141.59

在某处我发现我必须将这两个更新为最新版本,但这些已经是我设置中的最新版本。

这个问题听起来可能是重复的,但我已经尝试过这个社区中可用的问题。

如果有人知道这背后的原因,请分享,这将非常有帮助。

Curl error thrown for POST...意味着您的黄昏测试用例无法完全连接到 selenium 端点。

我看到您在驱动程序设置中使用了127.0.0.1

 protected function driver() { return RemoteWebDriver::create('http://127.0.0.1:4444', ...

但是,假设您在 laradock 工作空间容器运行php artisan dusk Huang ,该容器无法看到位于http://127.0.0.1的 seleninum 主机。 但是,由于 docker 组合在容器之间设置的frontend网络,该容器可以在 http://selenium 看到它

另外,我认为您还需要在 selenium 下指定路径 /wd/hub

所以试试这个:

  1. return RemoteWebDriver::create('http://selenium:4444/wd/hub', ...
  2. 在 laradock 工作区容器中运行黄昏,例如
    docker-compose exec -u laradock workspace php artisan dusk

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM