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
