您的位置:首页 > 其它

Selenium Webdriver中如何处理浏览器弹出多个窗口的问题

2017-02-27 14:43 483 查看
// 打开网页执行操作
String url = "http://*******";
driver.get(url);
driver.manage().window().maximize();
WebElement logoElement2 = driver.findElement(By.className("loginName"));
logoElement2.click();

// 获取当前页面的句柄
String currentHandle = driver.getWindowHandle();

// 单击iTask链接
WebElement webElement = driver.findElement(By.linkText("iTask"));
webElement.click();

// 单击iTask之后,会打开一个新的窗口,获取所有窗口的句柄
Set<String> allHandles = driver.getWindowHandles();

// 对获取的所有句柄进行循环判断,把当前句柄从所有句柄中移除,剩下的就是想要获得的新窗口的句柄
Iterator<String> iter = allHandles.iterator();
String handle = null;
WebDriver driverNew = null;
while(iter.hasNext()) {
handle = iter.next();
if(currentHandle == handle)
continue;
driverNew = driver.switchTo().window(handle);
}

// 完成在新窗口中的操作
webElement = driverNew.findElement(By.linkText("Team Worklog"));
webElement.click();

webElement = driverNew.findElement(By.linkText("Range"));
webElement.click();

webElement = driverNew.findElement(By.name("field_Start_Date"));
webElement.clear();
webElement.sendKeys(startDay);

webElement = driverNew.findElement(By.name("field_End_Date"));
webElement.clear();
webElement.sendKeys(endDay);

webElement = driverNew.findElement(By.name("Submit"));
webElement.click();
// 关闭当前窗口
driverNew.close();
// 关闭浏览器
driver.switchTo().window(currentHandle);
driver.quit();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  selenium