面试真题 | web自动化关闭浏览器,quit()和close()的区别

news/2024/11/9 9:41:59/

推荐阅读:

[内部资源] 想拿年薪30W+的软件测试人员,这份资料必须领取~

从功能测试进阶自动化测试,熬夜7天整理出这一份超全学习指南【附网盘资源】

面试官问:在UI自动化中怎样进行浏览器的关闭操作?使用driver调用quit()和调用close()的区别是什么?

考察点

  • 是否用过Selenium框架

  • 是否编写过对应浏览器退出的测试用例

技术点

  • Selenium API

  • driver.quit()

  • driver.close()

总结

quit()

  • 退出当前所有的窗口;

close()

  • 关闭当前的标签页,其他窗口不退出

关闭所有的浏览器窗口,销毁driver操作,则需要使用的是quit方法;当打开了多个窗口,只想要关闭非最后一个窗口的时候,使用的是close方法。

演示代码

quit()

quit():所有的浏览器窗口退出


@Test
public void quit() throws InterruptedException {WebDriver webDriver = WebDriverManager.chromedriver().create();webDriver.get("https://www.baidu.com/");webDriver.findElement(By.linkText("新闻")).click();sleep(5000);//输出当前的窗口Set<String> windowHandles = webDriver.getWindowHandles();System.out.println(windowHandles);sleep(3000);//切换到第一个窗口webDriver.switchTo().window(windowHandles.stream().findFirst().get());sleep(2000);System.out.println(webDriver.getWindowHandle());//Quits this driver, closing every associated window.webDriver.quit();sleep(6000);}

close()

close():只关闭当前的浏览器标签页,如果当前浏览器标签页剩下最后一个,则所有标签页面退出


@Test
public void close() throws InterruptedException {WebDriver webDriver = WebDriverManager.chromedriver().create();webDriver.get("https://www.baidu.com/");String mainHandle = webDriver.getWindowHandle();webDriver.findElement(By.linkText("新闻")).click();sleep(2000);//切换到第一个窗口webDriver.switchTo().window(mainHandle);sleep(2000);webDriver.findElement(By.linkText("图片")).click();sleep(2000);webDriver.close();//关闭第一个窗口System.out.println("浏览器关闭第一个窗口");sleep(6000);//切换到最后一个窗口关闭Set<String> handles = webDriver.getWindowHandles();ArrayList<String> hanleList = new ArrayList<>(handles);String endHandle = hanleList.get(hanleList.size() - 2);webDriver.switchTo().window(endHandle);sleep(2000);webDriver.close();System.out.println("浏览器关闭最后一个标签页");sleep(6000);}

 


http://www.ppmy.cn/news/3492.html

相关文章

ASEMI肖特基二极管MBR20200FCT特征,MBR20200FCT应用

编辑-Z ASEMI肖特基二极管MBR20200FCT参数&#xff1a; 型号&#xff1a;MBR20200FCT 最大重复峰值反向电压&#xff08;VRRM&#xff09;&#xff1a;200V 最大RMS电桥输入电压&#xff08;VRMS&#xff09;&#xff1a;140V 最大直流阻断电压&#xff08;VDC&#xff09…

仅差一步!如何缩短加入购物车与成单的距离?

不知不觉&#xff0c;2022年已接近尾声&#xff0c;经历了卡塔尔世界杯、黑色星期五等跨境电商狂欢节后&#xff0c;不少跨境电商卖家都在开展复盘行动&#xff0c;为接下来的圣诞节运营计划打下扎实基础。时常关注跨境电商行业的人都知道&#xff0c;衡量跨境电商广告效率的关…

Java基础之并发理论基础

Java基础之并发理论基础一、为什么需要多线程二、线程不安全1、三要素之一可见性&#xff08;CPU缓存引起&#xff09;2、三要素之一原子性&#xff08;分时复用引起&#xff09;3、三要素之一有序性&#xff08;重排序引起&#xff09;一、为什么需要多线程 CPU 增加了缓存&a…

数字孪生重点商业实践展示

数字孪生是一个系统或一组对象的虚拟表示。数字孪生背后的技术旨在准确反映系统的生命周期和应用程序&#xff0c;并使用机器学习、模拟和人工智能的组合来帮助在现实生活中运行之前对使用、问题或效率进行建模。如今&#xff0c;数字孪生技术的爆火离不开人们对其商业价值的看…

java+mysql 基于ssm的驾校预约管理系统

随着现代驾校预约管理的快速发展,可以说驾校预约管理已经逐渐成为现代驾校预约管理过程中最为重要的部分之一。但是一直以来我国传统的驾校预约管理并没有建立一套完善的行之有效的驾校预约管理系统,传统的驾校预约管理已经无法适应高速发展,无论是从效率还是从效果来看都远远的…

Java on Azure Tooling 11月更新|远程调试支持与 App Settings 增强

作者&#xff1a;Jialuo Gan Program Manager, Developer Division at Microsoft 排版&#xff1a;Alan Wang 大家好&#xff0c;欢迎回到11月的 Java on Azure Tooling 的更新。在这次更新中&#xff0c;我们将引入对 Azure Spring Apps 和 Azure Function Apps 的远程调试支持…

外部注意力机制与内部注意力机制

自注意力是注意力机制的一种特殊情况&#xff0c;其核心思想为通过计算特征内部元素之间的联系来获得大范围内的依赖关系。而在外部注意力中&#xff0c;key被拿到了网络外部&#xff0c;因此可以习得数据集的全局状况。 自注意力机制中&#xff0c;输入特征F被投射到query矩阵…

c++-函数

c-函数函数默认参数函数重载传递方式值传递指针&#xff08;地址&#xff09;传递引用传递引用传递与const指针引用引用与函数返回值引用与指针引用与临时数据 - 还要看引用与const 其他注意事项- 还没看const 与函数const与形参const修饰函数&#xff08;返回值&#xff09;co…