本文章出自【码同学软件测试】
码同学公众号:自动化软件测试
码同学抖音号:小码哥聊软件测试
多页面处理
做UI自动化的时候常常会遇到浏览器弹出新的Tab页,或者需要在多个网页服务之间来回取数据的情况。
比如在Testfan社区的首页点击文章“Jmeter使用?”的链接,浏览器会弹出一个新的页面显示“Jmeter使用?”这篇文章的详情。此时如果用Selenium Webdriver去查找该页面中的元素,会发现抛出空指针报错。
这是因为Selenium Webdriver只能指向一个HTML页面,而此时Webdriver仍然指向Testfan社区的首页,只能查找到Testfan首页的内容。
遇到这种情况我们需要用到句柄来处理不同页面的切换。
在使用句柄以前,我们先了解它的基本概念,我们可以把通过Selenium WebDriver打开的每一个页面都看做一个小球,每个小球有唯一的标识(这个标识就是句柄)。我们的手就相当于WebDriver,它通过获取所有的小球,依次遍历查看小球的详情(比如Title)来判断小球是不是我们要的页面。如果是,则通过小球的唯一标识(句柄),把WebDriver指向到我们需要的网页页面,然后再进行元素处理。