【发布时间】:2022-01-26 07:05:24
【问题描述】:
我已经测试点击链接,然后打开新的浏览器窗口,在新的浏览器窗口中我需要检查一些元素是否存在。如何切换到使用 BEHAT/MINK 打开的新浏览器窗口?
【问题讨论】:
标签: php browser automation behat mink
我已经测试点击链接,然后打开新的浏览器窗口,在新的浏览器窗口中我需要检查一些元素是否存在。如何切换到使用 BEHAT/MINK 打开的新浏览器窗口?
【问题讨论】:
标签: php browser automation behat mink
你可以使用switchToWindow($windowName)方法。
$this->getSession()->switchToWindow($windowName);
方法声明为here
例如,您可以从当前会话中获取所有窗口,然后切换到第二个窗口
$windowNames = $this->getSession()->getWindowNames();
if(count($windowNames) > 1) {
$this->getSession()->switchToWindow($windowNames[1]);
}
【讨论】:
以防万一这对任何人都有帮助,窗口名称是一个数组。因此,使用 Igor 的回答,$windowNames[1] 是第二个选项卡,[2] 将是第三个选项卡,因此是第四个选项卡。如果您想知道如何在此之后返回第一个选项卡,只需从 Igor 的答案中删除“if”块(或检查是否至少存在一个窗口)并创建一个新函数,如下所示:
/**
* @Given I go to the first tab
*/
public function goToFirstTab()
{
$windowNames = $this->getSession()->getWindowNames();
$this->getSession()->switchToWindow($windowNames[0]);
}
【讨论】: