您的位置:首页 > 编程语言 > Java开发

Selenium-窗口跳转

2016-12-20 14:27 232 查看
@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);

}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  selenium+java