Исключение в классе Teardowndusk

#laravel-dusk

#laravel-dusk

Вопрос:

Окружающая среда:

Dusk 5.0.2, Laravel 5.7.28, PHP 7.2.14, PHPUnit 7.5.8, MySQL 5.7, Laravel Homestead, ChromeDriver 2.45.615279

Проблемы:
№1

Исключение в Tests Browser :: Ошибка Curl tearDownDuskClass, вызванная удалением http в / session/e76b9bfe8c9f9af519c2901601531c6a

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

№2

Facebook WebDriver Exception WebDriverCurlException: ошибка Curl, вызванная для http POST в / session/ce9d54d51ec982ff77aa5ca202159ca4/log с параметрами: {«тип»: «браузер»}

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

Вызвано Facebook WebDriver Exception WebDriverCurlException: ошибка Curl, вызванная http-доступом к / session/ce9d54d51ec982ff77aa5ca202159ca4/скриншот

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

Тестовый класс:

 class MyTest extends DuskTestCase
{
    use DatabaseMigrations, WithFaker;

    public function testExample()
    {
        $user = factory(User::class)->create();

        $this->browse(function (Browser $browser) use ($user) {
            $browser
                ->loginAs($user)
                ->visitRoute(/**/)
                ->waitForText(/**/)
                ->type(/**/)
                ->type(/**/)
                ->type(/**/)
                ->attach(/**/, /**/)
                ->press(/**/)
                ->waitForText(/**/)
                ->assertSeeIn(/**/)
                ->click(/**/)
                ->assertSeeIn(/**/)
                ->click(/**/); //new tab is opened

            $windows = collect($browser->driver->getWindowHandles());

            //navigate to new tab
            $browser->driver->switchTo()->window($windows->last());
            $browser->assertPathIs(/**/);
        });
    }
}
  

Исключения генерируются случайным образом. Обычно самый первый тест после запуска моей виртуальной машины проходит успешно.

Обновление: временно устранено с помощью

 $window = $browser->driver->getWindowHandles()[1];
$browser->driver->switchTo()->window($window);
  

Обновление 2: даже этот код в конце теста вызывает ошибку

 $browser->driver->switchTo()->window($browser->driver->getWindowHandles()[1]);
$browser->screenshot('scr');
$browser->driver->switchTo()->window($browser->driver->getWindowHandles()[0]);
  

Комментарии:

1. Вы пробовали переключать резервное копирование на исходное окно в конце теста?

2. @JonasStaudenmeir да (я только что обновил вопрос с этим моментом).

3. Что вы подразумеваете под «временно решаемым с помощью»?

4. @JonasStaudenmeir это помогло при выполнении одного теста, все последующие тесты были неудачными

5. Надежно ли работает тест без всей части «перейти на новую вкладку»?