#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. Надежно ли работает тест без всей части «перейти на новую вкладку»?