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

 

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