關於selenium2(webdriver)自動化測試過程中標簽頁面或者窗口切換的處理解決方案


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM