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中的localtime()方法使用详解
May 22 Python
详解Python多线程
Nov 14 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
Apr 27 Python
Python 查看list中是否含有某元素的方法
Jun 27 Python
Python实现查询某个目录下修改时间最新的文件示例
Aug 29 Python
Django框架设置cookies与获取cookies操作详解
May 27 Python
python实现证件照换底功能
Aug 20 Python
python实现图片二值化及灰度处理方式
Dec 07 Python
如何在django中添加日志功能
Feb 06 Python
为什么称python为胶水语言
Jun 16 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
Nov 25 Python
Python调用REST API接口的几种方式汇总
Oct 19 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
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
PHP 向右侧拉菜单实现代码,测试使用中
2009/11/03 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
jQuery 改变CSS样式基础代码
2010/02/11 Javascript
前端开发的开始---基于面向对象的Ajax类
2010/09/17 Javascript
javascript之bind使用介绍
2011/10/09 Javascript
js修改地址栏URL参数解决url参数问题
2012/12/15 Javascript
datagrid框架的删除添加与修改
2013/04/08 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
Javascript实现时间倒计时功能
2018/11/17 Javascript
JavaScript创建防篡改对象的方法分析
2018/12/30 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
Vue 自定义指令功能完整实例
2019/09/17 Javascript
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
es6函数之尾递归用法实例分析
2020/04/25 Javascript
Vue this.$router.push(参数)实现页面跳转操作
2020/09/09 Javascript
[03:01]2014DOTA2国际邀请赛 小组赛7月13日TOPPLAY
2014/07/14 DOTA
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
测试、预发布后用python检测网页是否有日常链接
2014/06/03 Python
python读取几个G的csv文件方法
2019/01/07 Python
pandas实现将日期转换成timestamp
2019/12/07 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
使用 django orm 写 exists 条件过滤实例
2020/05/20 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
微信html5页面调用第三方位置导航的示例
2018/03/14 HTML / CSS
美国领先的汽车轮胎和轮毂供应商:TireBuyer
2016/07/21 全球购物
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
求职简历推荐信范文
2013/12/02 职场文书
家长给小学生的评语
2014/01/30 职场文书
护理中职生求职信范文
2014/02/24 职场文书
入党转正介绍人意见
2015/06/03 职场文书
CSS3实现的侧滑菜单
2021/04/27 HTML / CSS
世界十大动漫制作公司排行榜,迪士尼上榜,第二是美国代表性文化符
2022/03/18 欧美动漫