一、什么是浏览器窗口句柄
先来解释下什么是句柄,有时候浏览器的窗口句柄,也叫windows id,英文单词更好理解。你打开了一个浏览器,你开一个tab,就生成了一个id,这个id直到你关闭这个tab才会消失。如果你在一个浏览器上打开多个tab,那么就有多个windows id,为什么你关闭其中一个tab,但是不影响其他tab的显示,就是这个id的作用。
二、为什么要切换窗口
Selenium在当前页面打开了新的窗口,此时就需要跳转到新的窗口去,就需要把窗口进行切换。这里简单举例一个测试场景,你在页面A点击一个连接,会在新的tab窗口打开页面B,这个时候,你在页面B点击一个连接,会在新的tab窗口打开页面C。这种情况,在测试中经常遇到,自动化中,webdriver是如何处理的呢。这里就需要用到今天讲解和分享的知识了。
三、获取窗口句柄的方法
1、获取所有(set<String>):
//获取所有打开窗口句柄,返回的是set类型
Set<String> handles = driver.getWindowHandles();
2、获取当前(String类型):
//获取当前窗口句柄,返回的是string类型
String handle = driver.getWindowHandle();
3、 窗口切换方法
//窗口切换方法,需传入想要切换窗口的句柄
driver.switchTo().window();
四、实例
1、题目:这里点击搜索过后会打开一个新的页面,我们必须切换到他新的窗口才能操作
2、答案