Таймаут хромированного драйвера Laravel dusk

Может ли кто-нибудь помочь, я не могу заставить Laravel dusk запустить образец теста по умолчанию в моем текущем проекте Laravel 5.6 на Mac High Sierra.

Сообщение об ошибке

Время: 2,5 минуты, Память: 14,00 МБ

Произошла 1 ошибка:

1) Tests \ Browser \ ExampleTest :: testBasicExample Facebook \ WebDriver \ Exception \ WebDriverCurlException: ошибка Curl, выданная для HTTP POST в / сеанс с параметрами: {"desireCapabilities": {"browserName": "chrome", "platform": "ЛЮБОЙ "," chromeOptions ": {" binary ":" / Users / keith / Desktop / dusk / vendor / laravel / dusk / bin / chromedriver-mac "," args ": [" - disable-gpu "]}}}

Время ожидания операции истекло через 30002 миллисекунды, получено 0 байтов

/Users/keith/Desktop/dusk/vendor/facebook/webdriver/lib/Remote/HttpCommandExecutor.php:286 /Users/keith/Desktop/dusk/vendor/facebook/webdriver/lib/Remote/RemoteWeb126Driver.ph /keith/Desktop/dusk/tests/DuskTestCase.php:40 /Users/keith/Desktop/dusk/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:189 / Users / keith / Desktop / dusk / vendor / laravel /framework/src/Illuminate/Support/helpers.php:770 /Users/keith/Desktop/dusk/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:190 / Users / keith / Desktop / dusk / vendor / laravel /dusk/src/Concerns/ProvidesBrowser.php:92 /Users/keith/Desktop/dusk/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:64 / Users / keith / Desktop / dusk / tests / Browser / ExampleTest .php: 21

Я уже сделал следующее:

  • добавил следующее в app \ Providers \ AppServiceProvider.php

используйте Laravel \ Dusk \ DuskServiceProvider;

...

public function register()

{

    if ($this->app->environment('local', 'testing')) {

        $this->app->register(DuskServiceProvider::class);
    }

}
  • запустил php artisan dusk: install в терминале
  • установите App_URL в .env на http://localhost:8000
  • указали расположение хромодрайвера в DuskTestCase
  • запустите 'php artisan serve' перед запуском 'php artisan dusk'

Репозиторий: https://github.com/KKOA/dusk


person KKOA    schedule 15.04.2018    source источник
comment
После запуска php artisan serve ваш веб-сайт будет доступен под http://localhost:8000 в Chrome?   -  person Jonas Staudenmeir    schedule 15.04.2018
comment
Вы уже настроили свой DuskTestCase?   -  person Thomas Venturini    schedule 16.06.2018


Ответы (3)


Если ваша функция расширяется от DuskTestCase.php, вам необходимо увеличить connection_timeout_in_ms.

Сделайте это, изменив метод драйвера на следующий:

DuskTestCase.php

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

Если эта доза по какой-то причине не сработает, попробуйте set_time_limit до $this->browse

set_time_limit(0);
person Unicco    schedule 21.03.2020

попробуйте это при создании экземпляра браузера ... самое важное - $driver = retry(5, function () use ($capabilities) { return RemoteWebDriver::create('http://localhost:9515', $capabilities, 60000, 60000);

Ниже показано, как я создаю экземпляр своего браузера.

$options      = (new ChromeOptions)->addArguments(['--disable-gpu', '--headless', '--no-sandbox']);
$capabilities = DesiredCapabilities::chrome()
  ->setCapability(ChromeOptions::CAPABILITY, $options)
  ->setPlatform('Linux');
$driver       = retry(5, function () use ($capabilities) {
  return RemoteWebDriver::create('http://localhost:9515', $capabilities, 60000, 60000);
}, 50);

$browser = new Browser($this->driver, new ElementResolver($driver, ''));
person vidihermes    schedule 26.09.2018
comment
Мне нужно было обновить установку Chrome в моем Laravel Homestead Vagrant: stackoverflow.com/a/45227939/470749 - person Ryan; 24.11.2018

Вам действительно нужно установить последнюю версию google-chrome и последнюю версию драйвера chrome. Раньше у меня был только браузер Chrome, и он с ним не работает. Чтобы установить последнюю версию драйвера Chrome, запустите php artisan dusk:chrome-driver.

person pejuko    schedule 28.03.2021
comment
Это сработало для меня. У меня был только браузер Chrome, и он работал, когда я запускал php artisan dusk:chrome-driver - person raffi; 25.04.2021