Selenium-窗口跳轉

@Test
public void testMail() throws Exception {
driver.get(baseUrl);
String mainHandle=driver.getWindowHandle();      //取得登錄前的窗口句柄
driver.findElement(By.cssSelector("div#idInputLine>input#idInput")).clear();
driver.findElement(By.cssSelector("div#idInputLine>input#idInput")).sendKeys("lihongbin_vip");
driver.findElement(By.id("pwdInput")).clear();
driver.findElement(By.id("pwdInput")).sendKeys("Aa11111111");
driver.findElement(By.id("loginBtn")).click();
Thread.sleep(5000);
//登錄成功,跳轉到首頁面
Set<String> set = driver.getWindowHandles(); //創建set集合,即句柄數組
Iterator<String> handles = set.iterator(); //迭代器取得所有set集合內容

while (handles.hasNext()) { //是否還存在句柄
String sonHandle = handles.next(); //循環取得各個元素值
if (!sonHandle.equals(mainHandle)) //“登錄後的取得的所有句柄”與“登錄之前取得的句柄”進行對比,如果不同則執行窗口跳轉
{
driver.switchTo().window(sonHandle); 
}
}
String loginC=driver.getPageSource();
System.out.println("登錄後:");
System.out.println(loginC);
System.out.println("輸出完成");

 

註標紅的部分:從登錄前需要取得窗口句柄一次,登錄後取得所有句柄並對比,如不相同則跳轉到登錄後的句柄窗口中。

簡單的方法用下面的也可以:

//Switch to new window opened

for(String winHandle : driver.getWindowHandles()){
driver.switchTo().window(winHandle);
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章