多窗口切换解决方案(多窗口快速切换)

每天进步一点点,关注我们哦,每天分享测试技术文章

本文章出自【码同学软件测试】

多窗口切换解决方案(多窗口快速切换)

码同学公众号:自动化软件测试

码同学抖音号:小码哥聊软件测试

在做web端自动化测试用例编写过程中,大家有没有遇到窗口切换的情况,比如如下截图所示的商品列表页,点击任何一款产品后切换到这块产品详情页的情况。

多窗口切换解决方案(多窗口快速切换)

此时浏览器中叠放了两个窗口, 如下截图这种情况;

多窗口切换解决方案(多窗口快速切换)

或者出现打开两个浏览器窗口的情况,如下截图这种情况。

多窗口切换解决方案(多窗口快速切换)

这两种窗口切换的情况下大家的自动化测试脚本是如何编写的呢?

多窗口切换解决方案(多窗口快速切换)

还是不需要单独处理窗口切换?如果是使用selenium框架编写涉及窗口切换的自动化测试用例,肯定要单独处理窗口切换的情况。

那么为什么要对出现新窗口的情况单独处理呢?因为我们通过浏览器驱动对象访问指定url对应的是一个窗口X,当在窗口X执行某个操作(例如点击)导致新开一个页面或者新窗口Y,这种情况下selenium没有做智能处理,而把主动权交给了脚本编写人员来决定浏览器驱动对象在X还是Y窗口上模拟用户的操作行为。

那么接下来我们就需要去实现如何让窗口切换到我们预期的窗口,还是拿我们文章开头的例子来说吧,我需要从商品列表页切换到商品详情页,大体有4种解决方案,分别是:遍历找到预期窗口再进行切换、遍历过程中先切换窗口再判断预期窗口、指定窗口切换、多个条件判断预期窗口。接下来就需要解决我如何找到执行某个操作前后的窗口唯一标识,就像人和人之间的区别是身份证,出现商品列表页、商品详情页的情况下这两个窗口如何区分呢?

多窗口切换解决方案(多窗口快速切换)

通过句柄,每个窗口都拥有一个唯一标识句柄,如果感兴趣的读者可以将句柄打印出来看看,其实就是一串作为唯一标识的字符串。

免费领取 码同学软件测试 课程笔记+超多学习资料+完整视频+最新面试题,可以转发文章 + 私信「码同学666」获取资料哦

那么selenium框架web自动化情况下,我们如何来获取句柄呢?通过getWindowHandle()方法来获取当前页面的句柄。接下来我们尝试通过第一种解决方案遍历找到预期窗口再进行切换来获取,具体的代码实现逻辑为在执行点击某款产品前获取窗口句柄,然后定位某款产品元素并调用点击方法,然后调用getWindowHandles()方法获取当前所有打开窗口的句柄集合,也就是商品列表页以及商品详情页的句柄集合,接下来要做的就是遍历句柄集合中的元素,遍历的过程中判断当前这个句柄是否和点击操作前的句柄相同,如果不相同则切换到这个句柄对应的窗口,那么读者可能会问,切换窗口的方法是哪个?是switchTo()。下面给读者们提供一份样例代码块。

多窗口切换解决方案(多窗口快速切换)

读者们平时写测试用例涉及到多窗口切换的情况下,一般用这个方法就可以搞定。当然如果非常确定执行点击等操作后只新开一个窗口的话,还可以使用指定窗口切换这个解决方案,代码的实现逻辑就比较简单了,区分于方案一的地方就是将句柄集合转换成数组,然后通过指定数组下标来实现窗口切换,如下是给大家提供的实现代码块:

多窗口切换解决方案(多窗口快速切换)

如果出现多个叠加操作导致打开多个窗口的情况,还可以采用遍历过程中先切换窗口再判断预期窗口的方案,该方案区别于方案之处在于先执行窗口切换,然后再判断当前窗口句柄和预期的窗口句柄是否一致,如果一致,则停止遍历,依然给大家一段参考的实现代码,如下所示:

多窗口切换解决方案(多窗口快速切换)

以上代码块中实现的停止切换窗口的条件是,当前切换到的窗口title属性值是否是我预期窗口的title属性值,如果是则停止继续切换窗口。看到这里有读者可能会问了,如果有多个窗口的title属性值都相同,这个方案就不管用了吧?是的,但是我们可以尝试替换判断条件,例如判断当前切换到的窗口url和预期的url是否一致,这个判断比较保险,不同的窗口对应的url一般是不同的,但是如果前端代码版本更新时修改了url,此时我们的测试用例该部分信息也需要跟着修改,不要郁闷还有其他的替代解决方案,判断条件可以有一个变成多个,以上是针对多窗口切换情况的常用解决方案以及应用场景,希望能帮到我们的读者朋友。

多窗口切换解决方案(多窗口快速切换)

免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频,可以关注我们公众号哦:自动化软件测试

本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

以上内容来源于网络,由“WiFi之家网”整理收藏!

原创文章,作者:电脑教程,如若转载,请注明出处:https://www.224m.com/223741.html

(0)
电脑教程电脑教程
荣耀平板V7上手(荣耀新平板V7)
上一篇 2023年4月14日 13:05
192.168.10-路由器192168101怎么登录不了.
下一篇 2023年4月14日 13:27

相关推荐

  • 192.168.0.1路由器设置上网图文方法

    web管理地址是192.168.0.1的路由器的设置方法及教程。要完成192.168.0.1路由器的设置,一共需要三个步骤:1、路由器安装。2、ip地址设置。3、上网帐号及其它参数设置。

    2021年3月16日
    25.9K
  • 家里设置路由器收费吗(可以设置收费的路由器)

    家里设置路由器收费吗(可以设置收费的路由器) 家里设置路由器并不一定收费。有些路由器厂家提供支持收费功能的路由器型号,可以用于家庭网络管理和控制。 这类路由器通常具有许多功能,包括…

    网络 2024年8月30日
    0
  • 无线路由器连接上不能上网解决步骤

    原标题:"无线路由器连接上不能上网"相关路由器设置经验分享。 - 来源:WiFi之家网  这篇无线路由器连接上不能上网是WiFi之家网特地为大家整理的,希望对大家有所帮助!一、检查"

    路由器设置 2021年1月3日
    9.4K
  • 192.168.311-192网络号的意思.

    192.168.311本文目录192网络号的意思?路由器设置登录入口手机?我的腾达W311R无线路由器设置完了手机也连接上了怎么就没网呢?192168111路由器管理设置?192168101路由器初始密码?192网络号的意思?192号段,是工业和信息化部向中国广播电视网络有限公司核发的号段。如果是

    2023年5月24日
    12
  • 路由器设置网速会更快吗(路由器设置ip地址怎么设置)

    路由器设置网速会更快吗(路由器设置ip地址怎么设置) 很多人都认为通过路由器设置网速可以让网络变得更快,但其实并不一定。路由器设置网速的作用主要是限制带宽,通过限制下载和上传速度可…

    网络 2025年3月23日
    137
  • pdf怎么编辑修改内容 怎么修改pdf里面的内容?

    pdf怎么编辑修改内容 修改PDF文件这么简单?Word打开编辑真的很方便怎么修改pdf里面的内容? 1.PDF转Word在电脑上找到这个PDF选择文件,鼠标点击右键,选择【打开方式】,因为我的电

    投稿 2022年7月19日
    9.9K
  • 腾讯视频会员涨价了(腾讯视频会员涨价了怎么办)

    腾讯视频在日常生活中,看视频成为了我们中一小部分,视频包括了电视剧电影、大家在看电视剧总会出现一些游戏小广告或者是新闻,而且电影是相当对小朋友的喜爱,特别是好莱坞的电影,比如美国演…

    2023年2月1日
    492
  • 宽带猫能自己设置路由器吗(宽带猫自带路由器怎么设置)

    宽带猫是一种常用的网络设备,可以提供宽带上网服务。但是,它能自己设置路由器吗? 一般而言,宽带猫是不能自己设置路由器的,因为它只是一个连接上网的设备。如果需要设置路由器,需要另外购…

    网络 2024年12月5日
    822
  • 192.168.1.1怎么设置

    路由器用 192.168.1.1 作为路由器的登录地址以前是非常多的,现在的路由器都用字母作为登录地址了,这里就介绍用电脑怎么设置192.168.1.1作为登录地址的路由器,以tp-link路由器来

    2020年5月10日
    26.1K
  • 智能光猫带路由器怎么设置(智能网关 光猫 路由器区别)

    智能光猫带路由器怎么设置(智能网关 光猫 路由器区别) 随着互联网的发展,智能光猫带路由器越来越普及。但是,很多人对智能网关、光猫和路由器的区别并不清楚,也不知道如何进行设置。 智…

    网络 2024年8月27日
    0