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,就好比每个人都有一个身份证号码进行唯一识别身份。

}  

 

 

 

sea  2015  中国:广州:VIP