@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);
}