selenium处理浏览器弹出新窗口

上一篇 / 下一篇  2016-01-20 10:52:00 / 个人分类:selenium

WebDriver driver = new FirefoxDriver();
WebDriver newWindow=null;
driver.manage().window().maximize();//浏览器最大化
driver.get("http://www.baidu.com");
//获取当前页面句柄
String current_handle = driver.getWindowHandle();
//点击 百度新闻链接
driver.findElement(By.linkText("新闻")).click();
//接下来会有新的窗口打开,获取所有窗口句柄
Set<String> all_handles = driver.getWindowHandles();
//循环判断,把当前句柄从所有句柄中移除,剩下的就是你想要的新窗口
Iterator<String> it = all_handles.iterator();
String handle = null;
while(it.hasNext()){
handle = it.next();
if(current_handle==handle) continue;
//跳入新窗口,并获得新窗口的driver - newWindow
newWindow = driver.switchTo().window(handle);
}
Thread.sleep(10000);
//接下来在新页面进行操作,也就是百度新闻页面,我们输入一个java关键字进行搜索
WebElement element = newWindow.findElement(By.id("ww"));
element.sendKeys("java");
newWindow.findElement(By.xpath(".//*[@id='sugarea']/span[@class='s_btn_wr']/input")).click();
//关闭当前窗口,主要使用close而不是quite,
newWindow.close();
//退出所有的浏览器
driver.switchTo().window(current_handle);
driver.quit();


注意:Set集合要小心使用,特别是it.next()

TAG: 浏览器

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-27  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 29603
  • 日志数: 8
  • 建立时间: 2015-12-29
  • 更新时间: 2016-01-28

RSS订阅

Open Toolbar