У меня есть эта страница, на которой при нажатии определенной кнопки появляется новое окно (например, тег привязки с _target = blank). Я хочу убедиться, что в этом новом окне появляется строка текста, но с помощью Laravel Dusk assertSee
похоже, тестирует исходное окно, а не вновь открытое окно.
Любые идеи относительно того, как я могу проверить содержимое недавно открытого окна?
Я только столкнулся с этой проблемой сегодня. Вы можете использовать драйвер браузера, чтобы получить все открытые окна, а затем переключиться на вкладку, которая была открыта последней.
// 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)
Других решений пока нет …