Исключение в tearDownDuskClass - PullRequest
0 голосов
/ 29 марта 2019

Среда :

Сумерки 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

Исключение в тестах \ Browser \ :: tearDownDuskClass Ошибка Curl для http DELETE для / session / e76b9bfe8c9f9af519c2901601531c6a

Тайм-аут операции после 30000 миллисекунд с получением 0 байтов

№2

Facebook \ WebDriver \ Exception \ WebDriverCurlException: ошибка скручивания, выданная для http POST to / session / ce9d54d51ec982ff77aa5ca202159ca/ log с параметрами: {"type": "browser"}

Тайм-аут операции после 30001 миллисекунды с получением 0 байтов

Вызвано Facebook \ WebDriver \ Exception \ WebDriverCurlException: ошибка Curl, выданная дляhttp GET to / session / ce9d54d51ec982ff77aa5ca202159ca4 / screenshot

Тайм-аут операции после 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]);
...