1. 通过页面或者window 的name切换:
- switch_to_frame(name)
- switch_to_window(name)
那么问题来了,出现2个或者以上窗口时候,新打开的window一般都是没有name,此时可用driver.switchTo().window(windowHandleId)来进行切换
//获取当前窗口handleId
String thisHandleId = driver.getWindowHandle();
//切换到新window
for(String tempHandleId: driver.getWindowHandles())
{
//如果不是当前窗口的thisHandleId,那么我们就用它取切换到新窗口
if(!tempHandleId.equals(thisHandleId))
{
driver.switchTo().window(tempHandleId);
}
}
亲,你是不是要问我如果超过2个测试窗口怎么办? 告诉你,没有现成的办法,但是我有一秘诀,就是:
每次遍历一个handleId去切换到一个不知道是哪个页面的页面,然后接着去断言下该页面下是否有你设置的那些元素或者文字或网页标题等等,不就可以区分是哪个新页面了?
for(String tempHandleId: driver.getWindowHandles())
{
driver.switchTo().window(tempHandleId);
...接着去获取当前窗口的html进行分析、或者断言网页标题、内容元素等,肯定可以区分是哪个新页面,除非是相同的响应页面那我无语了
不要再问哥,哥就说个传说! 不过我要告诉你每个网页都有一个HandleId,就好比每个人都有一个身份证号码进行唯一识别身份。
}
本着资源共享的原则,欢迎各位朋友在此基础上完善,并进一步分享,让我们的实现更加优雅。如果有任何疑问和需要进一步交流可以加我QQ 1922003019或者直接发送QQ邮件给我沟通
sea 2015 中国:广州:VIP