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();
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 webdriver】处理Windows弹出窗口(window handles)
- selenium webdriver学习(六)------------如何得到弹出窗口
- Selenium Webdriver中如何处理多个Authentication Required对话框问题
- 解决Selenium Webdriver执行测试时,每个测试方法都打开一个浏览器窗口的问题
- selenium webdriver学习(六)------------如何得到弹出窗口
- Selenium webdriver如何处理confirm对话框的问题
- Selenium实践-如何处理弹出窗口
- Selenium不同浏览器WebDriver处理方法
- 浏览器编程中如何处理弹出窗口
- selenium与webdriver测试弹出窗口
- Watir-webdriver处理模态窗口问题
- selenium_webdriver(python)获取元素属性值,浏览器窗口控制、网页前进后退,title/url打印
- python+selenium webdriver 如何处理table
- selenium_webdriver(python)多层框架/窗口中元素定位问题
- selenium_webdriver 驱动不了浏览器问题
- selenium webdriver学习(一)---如何处理alert、confirm、prompt对话框
- Selenium WebDriver如何处理单选框和多选框
- Web Driver处理模态窗口无法获得句柄的问题
- selenium webdriver学习(六)-怎么得到弹出窗口
- Selenium Webdriver处理iFrame之间的切换问题