用 laravel dusk 测试新的 window

testing a new window with laravel dusk

我有这个页面,当单击特定按钮时,会弹出一个新的 window(例如,_target = 空白的锚标记)。我想验证这个新 window 中是否出现了一个文本字符串,但是对于 Laravel Dusk,assertSee 似乎在测试原始 window 而不是新开的window.

关于如何测试新打开的内容的任何想法 window?

我今天刚 运行 遇到这个问题。可以使用浏览器驱动获取所有打开的windows,然后切换到上次打开的标签

// 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');

您可能需要在切换到新的 window 后添加一个暂停,因为 dusk 非常快并且它可能会在新页面完全加载之前开始断言。

(我在 github 问题中找到了这个答案,https://github.com/laravel/dusk/issues/336