用laravel黄昏测试一个新窗口

时间:2017-08-13 04:16:10

标签: php laravel-5.4 laravel-dusk

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

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

1 个答案:

答案 0 :(得分:9)

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

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