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

// 打开网页执行操作
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();


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tongxin19871006/article/details/58073171
文章标签: selenium
个人分类: selenium
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭