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

原创 2017年02月27日 14:43:30

// 打开网页执行操作
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中窗口的close()与quit()

webdriver 子窗口的关闭, webdriver quit, webdriver close
  • aerchi
  • aerchi
  • 2015年02月28日 14:16
  • 18145

webdriver实现2个或两个以上窗口间切换的方法

在UI自动化测试中,经常为需要打开多个窗口,以下两个方法分别实现了两个窗口和多个窗口间切换的功能,现分享代码如下: /** *  切换窗口(当前窗口为2个) */ public void change...
  • russ44
  • russ44
  • 2016年08月05日 12:46
  • 4052

python selenium打开新窗口,多窗口切换

# coding=utf-8''' Created on 2016年8月9日@author: SunDongFang ''' from selenium import webdriverbrowser...

Selenium Webdriver弹出框的种种类型

转自:http://www.webdriver.org/article-32-1.html 测试过程中,我们经常会遇到许多的弹出框去处理,比如登陆的用户名密码输入,或是页面的警告,还或者是新页面弹出...

Java+Selenium3方法篇21-webdriver处理浏览器多窗口切换

经过前面两篇文章的铺垫,我们这篇介绍,webdriver如何处理,一个浏览器上多个窗口之间切换的问题。我们先脑补这样一个测试场景,你在页面A点击一个连接,会在新的tab窗口打开页面B,这个时候,你在页...

webdriver对于模态窗口的处理

定义: 模态对话框:(Modal Dialogue Box,又叫做模式对话框),是指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应。如单击【确定】或【取消】按钮等将该对话框...

Selenium2(Webdriver)+Python处理浏览器多标签方法二则

我们在用Selenium遇到多个浏览器或单个浏览器多个标签(Tab)的状况时,往往都不太好处理,这里将介绍两种处理方法。...

selenium多个窗口切换

http://www.cnblogs.com/TTyb/p/6046082.html 浏览器里面支持多窗口打开,例如这样: html里面写了: target=...

解决Selenium弹出新页面无法定位元素问题(Unable to locate element)

Python 2.7 IDE Pycharm 5.0.3环境细节详见Python+Selenium+PIL+Tesseract真正自动识别验证码进行一键登录对于同一页面无法定位元素问题请见姊妹篇...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Selenium Webdriver中如何处理浏览器弹出多个窗口的问题
举报原因:
原因补充:

(最多只允许输入30个字)