如何通过保持webDriver处于活动状态来关闭整个浏览器窗口?

拉胡尔

在我的批处理执行中,第一种情况将打开具有多个选项卡的多个浏览器。我想在开始第二种情况之前关闭所有这些浏览器。

Driver.close()只是关闭浏览器的一个标签。Driver.quit()关闭所有浏览器并结束WebDriver会话。因此,无法运行批处理执行。请为此提供解决方案。

Shubham Jain

以下说明应解释WebDriver中driver.closedriver.quit方法之间的区别希望对你有帮助。

driver.closedriver.quit是在Selenium WebDriver中关闭浏览器会话的两种不同方法。

了解两者并知道何时使用每种方法对您的测试执行很重要。因此,我试图阐明这两种方法。

driver.close-此方法关闭设置焦点的浏览器窗口。driver.quit关闭webdriver会话,而driver.close仅关闭当前存在硒控制的窗口,但webdriver会话尚未关闭,如果没有其他窗口打开,您调用driver.close则它也关闭webdriver会话。

driver.quit –此方法基本上调用driver.dispose现在是一个内部方法,该方法依次关闭所有浏览器窗口并正常结束WebDriver会话。

driver.dispose-如前所述,是WebDriver的一种内部方法,已根据另一个答案以静默方式删除了该方法-需要验证。在正常的测试工作流程中,此方法确实没有用例,因为任何一种前述方法都适用于大多数用例。

说明用例:每当要结束程序时,都应使用driver.quit它将关闭所有打开的浏览器窗口,并终止WebDriver会话。如果在程序末尾不使用driver.quit,则WebDriver会话将无法正确关闭,并且不会从内存中清除文件。这可能会导致内存泄漏错误。

............

现在,在这种情况下,您需要特定的浏览器。下面的代码将关闭除主窗口以外的所有子窗口。

String homeWindow = driver.getWindowHandle();
Set<String> allWindows = driver.getWindowHandles();

//Use Iterator to iterate over windows
Iterator<String> windowIterator =  allWindows.iterator();

//Verify next window is available
while(windowIterator.hasNext())
{
    //Store the Recruiter window id
    String childWindow = windowIterator.next();
}

//Here we will compare if parent window is not equal to child window 
if (homeWindow.equals(childWindow))
{
    driver.switchTo().window(childWindow);
    driver.close();
}

现在,您需要根据需要修改或添加条件

if (homeWindow.equals(childWindow))
{
    driver.switchTo().window(childWindow);
    driver.close();
}

当前,它仅检查主窗口是否等于子窗口。在这里,您需要指定条件,例如要关闭的ID。我从来没有尝试过,所以只建议您达到您的要求的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过拒绝Selenium Webdriver中的弹出窗口来关闭浏览器

标签或窗口处于非活动状态时,浏览器如何暂停/更改Javascript?

使用 Selenium 驱动程序加载页面,关闭/处理它并保持浏览器处于活动状态

检测浏览器窗口是否处于活动状态,并在窗口再次处于活动状态后启动事件[JavaScript]

如何在服务器仍处于活动状态的情况下检查浏览器连接?

如何判断浏览器/标签页是否处于活动状态

如何检查浏览器是否在Crossrider中处于活动状态?

是否想在浏览器窗口处于活动状态时每次按下按键时读取按键事件并打印按键?

如何防止关闭浏览器窗口?

当调用脚本关闭时,如何将python数据传递回调用脚本,使浏览器窗口保持打开状态

关闭浏览器后,如何阻止Gmail保持登录状态?

如何检测浏览器未最小化且相关选项卡未处于活动状态

如何通过react-router-dom防止浏览器返回并保持状态

检查是否使用Android默认浏览器或任何移动浏览器(如果处于活动状态)

如何使子菜单跨越浏览器窗口的整个宽度?

检测浏览器选项卡是否处于活动状态或用户已离开

有没有办法判断浏览器是否处于活动状态?

木偶:浏览器断开后,Chromium实例在后台仍处于活动状态

FormsAuthenticationTicket:关闭浏览器后如何保持用户登录?

关闭浏览器PHP后如何保持$ _GET值

如何保持用户名直到浏览器关闭?

使用Core 2.2中的Identity,如何在关闭浏览器15分钟后保持会话活动?

如何捕获浏览器窗口关闭事件?

如何关闭Chrome浏览器弹出窗口?

谷歌浏览器杀死进程如何从终端关闭窗口?

浏览器刷新后如何保持React组件状态

向下滚动整个浏览器窗口

关闭浏览器窗口后,如何防止Google Chrome浏览器删除会话Cookie?

如何在自动化的无头浏览器中通过弹出窗口将文件上传到Web浏览器(Selenium WebDriver)

TOP 榜单

热门标签

归档