我遵循了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也不是我的默认浏览器,更改该设置无济于事。我在这里想什么?
答案 0 :(得分:1)
浏览器驱动程序下载到您的laravel应用中的 \ vendor \ laravel \ dusk \ bin 中。
从文件浏览器导航至该位置并运行可执行文件(取决于您的操作系统,我的是 Windows ,而我正在运行 chromedriver-win.exe )。你应该看到这个
这是要在您的 DuskTestCase.php 文件中使用的端口号
此外,您还需要确保将 .env 文件中的 APP_URL 变量设置为可从浏览器访问的URL(我的名称是APP_URL = http://localhost:8888 )。
注意:我没有在 .env 文件中使用端口 9515 。
我希望能帮上忙。