тестирование нового окна с помощью Laravel Dusk

У меня есть эта страница, на которой при нажатии определенной кнопки появляется новое окно (например, тег привязки с _target = blank). Я хочу убедиться, что в этом новом окне появляется строка текста, но с помощью Laravel Dusk assertSee похоже, тестирует исходное окно, а не вновь открытое окно.

Любые идеи относительно того, как я могу проверить содержимое недавно открытого окна?

1

Решение

Я только столкнулся с этой проблемой сегодня. Вы можете использовать драйвер браузера, чтобы получить все открытые окна, а затем переключиться на вкладку, которая была открыта последней.

// Get the last opened tab
$window = collect($browser->driver->getWindowHandles())->last();

// Switch to the tab
$browser->driver->switchTo()->window($window);

// Check if the path is correct
$browser->assertPathIs('/path/of/site/in/new/tab');

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

(Я нашел этот ответ в проблеме GitHub, https://github.com/laravel/dusk/issues/336)

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]