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

来源:互联网 发布:淘宝原味丝袜店铺 编辑:程序博客网 时间:2024/05/21 03:24

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


0 0
原创粉丝点击