selenium 多窗口切换的实现(windows)


Posted in Python onJanuary 18, 2020

在web应用中,常常会遇见点击某个链接会弹出一个新的窗口,或者是相互关联的web应用 ,这样要去操作新窗口中的元素,这时就需要主机切换到新窗口进行操作。。WebDriver 提供了switchTo().window()方法可以实现在不同的窗口之间切换。

以下代码是以新浪网为实例。通过获取句柄切换到指定窗口,并关闭窗口。当然切换到指定窗口,也可以通过元素定位等方法对元素进行操作。

getWindowHandle():获得当前窗口句柄。

getWindowHandles():返回的所有窗口的句柄到当前会话。

switchTo().window():用于切换到相应的窗口,与上一节的switchTo().frame()类似,前者用于不同窗口的切换,后者用于不同表单之间的切换。 

public static void main(String[] args) throws InterruptedException {

System.setProperty("webdriver.chrome.driver", "D:/chromedriver_win32/chromedriver.exe");
ChromeOptions Options = new ChromeOptions();
Options.addArguments("user-data-dir=C:\\Users\\happy\\AppData\\Local\\Google\\Chrome\\User Data");
WebDriver driver = new ChromeDriver(Options);
driver.manage().window().maximize();
// 窗口最大化
driver.get("http://www.sina.com.cn/");
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
// 设置元素等待时间 ,隐式等待
String sreachHand = driver.getWindowHandle();
// 获取当前窗口的句柄
driver.findElement(By.linkText("体育")).click();
// 打开新浪官网上的体育链接
driver.findElement(By.linkText("娱乐")).click();
// 打开新浪官网上的娱乐链接
java.util.Set<String> Handles = driver.getWindowHandles();
System.out.println(Handles.size() + "集合长度");
// 获取所有窗口的句柄并将句柄放在Set集合中。
// 以下判断是否是新浪网首页,如果是则关闭新浪网首页。
for (String i : Handles) {
if (i.equals(sreachHand)) {
driver.switchTo().window(i);
Thread.sleep(5000);
driver.close();

}
}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用正则表达式提取网页URL的方法
May 26 Python
Apache如何部署django项目
May 21 Python
python正则表达式的使用
Jun 12 Python
numpy排序与集合运算用法示例
Dec 15 Python
pandas数据处理基础之筛选指定行或者指定列的数据
May 03 Python
Python随机生成身份证号码及校验功能
Dec 04 Python
Python设计模式之桥接模式原理与用法实例分析
Jan 10 Python
python+selenium实现简历自动刷新的示例代码
May 20 Python
详解python websocket获取实时数据的几种常见链接方式
Jul 01 Python
Python获取时间戳代码实例
Sep 24 Python
安装2019Pycharm最新版本的教程详解
Oct 22 Python
 Python 中 logging 模块使用详情
Mar 03 Python
pytorch实现建立自己的数据集(以mnist为例)
Jan 18 #Python
使用PyTorch实现MNIST手写体识别代码
Jan 18 #Python
Pytorch之finetune使用详解
Jan 18 #Python
pytorch 修改预训练model实例
Jan 18 #Python
Pytorch自己加载单通道图片用作数据集训练的实例
Jan 18 #Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
Jan 18 #Python
Python实现点云投影到平面显示
Jan 18 #Python
You might like
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
php实现图片上传时添加文字和图片水印技巧
2020/04/18 PHP
php将服务端的文件读出来显示在web页面实例
2016/10/31 PHP
利用Laravel生成Gravatar头像地址的优雅方法
2017/12/30 PHP
PHP+ajax实现二级联动菜单功能示例
2018/08/10 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
JS数组的常见用法实例
2015/02/10 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
Javascript中setTimeOut和setInterval的定时器用法
2015/06/12 Javascript
学习JavaScript设计模式之迭代器模式
2016/01/19 Javascript
javascript中apply、call和bind的使用区别
2016/04/05 Javascript
jquery+CSS3实现3D拖拽相册效果
2016/07/18 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
2016/09/23 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
2017/08/14 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
2017/09/13 Javascript
详解如何使用koa实现socket.io官网的例子
2018/11/04 Javascript
vue实现拖拽的简单案例 不超出可视区域
2019/07/25 Javascript
vue-devtools的安装和使用步骤详解
2019/10/17 Javascript
python获取mp3文件信息的方法
2015/06/15 Python
在Python中使用正则表达式的方法
2015/08/13 Python
python中异常捕获方法详解
2017/03/03 Python
python制作mysql数据迁移脚本
2019/01/01 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
Python中请不要再用re.compile了
2019/06/30 Python
Python使用Pandas对csv文件进行数据处理的方法
2019/08/01 Python
python实现超级玛丽游戏
2020/03/18 Python
Python 日期与时间转换的方法
2020/08/01 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
2021/02/06 Python
高性能装备提升营地:Kammok
2019/02/27 全球购物
美国农场商店:Blain’s Farm & Fleet
2020/01/17 全球购物
西班牙Polo衫品牌:Polo Club
2020/08/09 全球购物
新驾驶员个人自我评价
2014/01/03 职场文书
统计专业自荐书
2014/07/06 职场文书
2014年护理部工作总结
2014/11/14 职场文书
通知格式
2015/04/27 职场文书
工作失职自我检讨书
2015/05/05 职场文书