11

我有这个页面,当单击特定按钮时,会弹出一个新窗口(例如,带有 _target = 空白的锚标记)。我想验证这个新窗口中是否出现了一串文本,但是使用 Laravel DuskassertSee似乎正在测试原始窗口而不是新打开的窗口。

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

4

1 回答 1

27

我今天刚遇到这个问题。您可以使用浏览器驱动程序获取所有打开的窗口,然后切换到最后打开的选项卡。

// 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

于 2017-08-24T08:18:04.850 回答