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-获取当前窗口句柄与切换回原窗口句柄

# -*- coding:cp936 -*- __author__ = 'Administrator' import unittest,time,re from selenium impor...
  • hhabc123456789
  • hhabc123456789
  • 2014年03月23日 10:25
  • 24691

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

# coding=utf-8''' Created on 2016年8月9日@author: SunDongFang ''' from selenium import webdriverbrowser...
  • DongGeGe214
  • DongGeGe214
  • 2016年08月10日 11:24
  • 18115

selenium多个窗口操作及切换

#!/usr/bin/python # -*- coding: utf-8 -*- ''' @author:free Created on 2016年3月21日 ''' #--------------...
  • freesigefei
  • freesigefei
  • 2016年03月22日 11:29
  • 2689

Python+Selenium练习篇之27-多窗口之间切换

本文来介绍如何处理driver在多窗口之间切换,想一下这样的场景,在页面A点击一个连接,会触发在新Tab或者新窗口打开页面B,由于之前的driver实例对象在页面A,但是你接下来的脚本是操作页面B的元...
  • u011541946
  • u011541946
  • 2017年04月11日 20:30
  • 4302

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

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

[乐意黎原创] Selenium里WebDriver中窗口的close()与quit()

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

selenium怎样在多窗口中运行程序 (1)

  • 2012年06月26日 19:46
  • 198KB
  • 下载

Selenium Webdriver使用已打开的浏览器

  • 2016年04月24日 11:24
  • 6KB
  • 下载

selenium之 关闭窗口close与quit

selenium关闭窗口有两个方法,close与quit,我们稍作研究便知道这两个方法的区别。1.看源码或API这是close()的说明: Closes the current window. ...
  • huilan_same
  • huilan_same
  • 2016年08月26日 16:36
  • 11411

Python+Selenium进行网页多窗口切换爬虫

#!/usr/bin/python # -*- coding:utf8 -*- import time import random import os import re import xlwt i...
  • Blackrosetian
  • Blackrosetian
  • 2017年07月25日 17:46
  • 372
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Selenium Webdriver中如何处理浏览器弹出多个窗口的问题
举报原因:
原因补充:

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