【问题标题】:Unable to run Laravel Dusk out of the box无法开箱即用地运行 Laravel Dusk
【发布时间】:2020-04-08 20:31:24
【问题描述】:

我按照here 的指示进行操作。但是我遇到了这个错误,不知道为什么。

There was 1 error:

1) Tests\Browser\Auth\LoginTest::testLogin
TypeError: Argument 1 passed to Facebook\WebDriver\Remote\DesiredCapabilities::__construct() must be of the type array, null given, called in /var/www/xxxxxx/vendor/facebook/webdriver/lib/Remote/RemoteWebDriver.php on line 127

/var/www/xxxxxx/vendor/facebook/webdriver/lib/Remote/DesiredCapabilities.php:33
/var/www/xxxxxx/vendor/facebook/webdriver/lib/Remote/RemoteWebDriver.php:127
/var/www/xxxxxx/tests/DuskTestCase.php:40
/var/www/xxxxxx/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:192
/var/www/xxxxxx/vendor/laravel/framework/src/Illuminate/Support/helpers.php:816
/var/www/xxxxxx/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:193
/var/www/xxxxxx/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:93
/var/www/xxxxxx/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:64
/var/www/xxxxxx/tests/Browser/Auth/LoginTest.php:27

这是我的 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;

    /**
     * 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()
    {
        $options = (new ChromeOptions)->addArguments([
            '--disable-gpu',
            '--headless',
            '--no-sandbox', // as suggested in one of the forums but didn't work
            '--window-size=1920,1080',
        ]);

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

我已经安装了 facebook/webdriver 但同样的错误。我正在使用 Ubuntu 和 Docker。 Chrome 也不是我的默认浏览器,改变它并没有帮助。我在这里想干什么?

【问题讨论】:

  • 你用的是什么版本的 Dusk?

标签: laravel laravel-dusk


【解决方案1】:

浏览器驱动程序下载到您的 laravel 应用程序中的 \vendor\laravel\dusk\bin

从您的文件资源管理器导航到该位置并运行可执行文件(取决于您的操作系统,我的是 Windows 并且我正在运行 chromedriver-win.exe )。你应该看到这个

这是在您的 DuskTestCase.php 文件中使用的端口号

此外,您需要确保将 .env 文件中的 APP_URL 变量设置为可从浏览器访问的 URL(我的是 APP_URL=http://localhost:8888)。

注意:我的 .env 文件中没有使用端口 9515

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 2018-09-16
    • 2018-03-07
    • 2017-09-06
    • 2017-06-29
    • 2016-10-07
    • 2012-12-09
    相关资源
    最近更新 更多