当前位置: 首页 > 面试题库 >

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

施德元
2023-03-14
问题内容

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

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


问题答案:

以下说明应说明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。我从来没有尝试过,所以只是建议您达到要求的方式。



 类似资料:
  • 问题内容: 我有一个测试用例,在登录后,当用户尝试关闭浏览器时,在某个页面上,它将显示弹出窗口(警告),询问“您可能会丢失数据,确定要继续吗?”,有两个选项: 离开页面 留在页面上 单击特定选项,页面将执行操作。 “停留在页面上”不会离开页面,而“离开页面”将关闭浏览器。 现在,当我尝试关闭浏览器时,它并没有要求我弹出 之前关闭浏览器。 如何接受/拒绝弹出窗口,然后根据操作,应该关闭浏览器? 问题

  • 问题内容: 我正在使用selenium webDriver为一个Web应用程序编写测试,并且遇到一种情况,当我尝试关闭浏览器时,我会弹出一个对话框:“确定吗?”页面要求您确认要离开- 输入的数据将迷路了。” 有2个按钮:“离开页面”和“停留在页面上” 如何单击这些按钮? 问题答案: 为我解决了这个问题

  • 问题内容: 背景:我正在做一些用户界面测试,这些测试需要检测人们是否在关注。 具体来说,我想知道如果当前的选项卡处于非活动状态,或者浏览器窗口处于非活动状态,那么在不同的浏览器中,我的Javascript代码将受到什么影响。到目前为止,我已经挖掘了以下内容: 我有以下问题: 除了移动浏览器以外,当选项卡处于非活动状态时,桌面浏览器是否会暂停JS执行?什么时候使用哪些浏览器? 哪些浏览器减少重复次数

  • 问题内容: 我有一个每秒调用一次的函数,仅当当前页面位于前台时才运行,即用户没有最小化浏览器或切换到另一个选项卡。如果用户不看它,它是没有用的,并且可能占用大量CPU,因此我不想只在后台浪费时间。 有人知道如何用JavaScript讲这个吗? 注意:我使用jQuery,因此,如果您的答案使用了jQuery,那就好了:)。 问题答案: 您将使用窗口的和事件: 要回答“ Double Fire”的评论

  • 问题内容: 我尝试使用以下代码在关闭浏览器窗口时收到警报: 它可以工作,但是如果页面包含一个超链接,则单击该超链接会引发相同的警报。仅在关闭浏览器窗口时才需要显示警报,而在单击超链接时则不需要。 问题答案: 保持您的代码不变,并使用jQuery处理链接:

  • 通常情况下,您使用selenium来自动化测试用例,在测试用例运行完毕后,浏览器关闭。 然而,我尝试使用selenium webdriver编写特定任务的脚本,例如登录到特定页面,但浏览器在登录后应保持打开状态。 我开发了门户,这样,如果我早上开始工作,我就不必登录所有的后端,我只需要登录一次我的门户,从那里我就可以触发我需要的一切。 我这样做是为了登录到typo3后端(片段): 您可以看到,我在