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 相关文章推荐
利用Fn.py库在Python中进行函数式编程
Apr 22 Python
Go语言基于Socket编写服务器端与客户端通信的实例
Feb 19 Python
利用标准库fractions模块让Python支持分数类型的方法详解
Aug 11 Python
Django中Forms的使用代码解析
Feb 10 Python
python+ffmpeg视频并发直播压力测试
Mar 06 Python
PyQt5每天必学之工具提示功能
Apr 19 Python
Python系统监控模块psutil功能与经典用法分析
May 24 Python
python中多个装饰器的调用顺序详解
Jul 16 Python
Python获取时间范围内日期列表和周列表的函数
Aug 05 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
Dec 08 Python
Django扫码抽奖平台的配置过程详解
Jan 14 Python
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
May 31 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
php中最简单的字符串匹配算法
2014/12/16 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
JavaScript 私有成员分析
2009/01/13 Javascript
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
javascript 折半查找字符在数组中的位置(有序列表)
2010/12/09 Javascript
kmock javascript 单元测试代码
2011/02/06 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
2013/06/13 Javascript
JS常用正则表达式总结
2013/11/12 Javascript
原生JavaScript+LESS实现瀑布流
2014/12/12 Javascript
JS扩展方法实例分析
2015/04/15 Javascript
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
jsTree使用记录实例
2016/12/01 Javascript
深入理解react-router 路由的实现原理
2018/09/26 Javascript
vue-cli脚手架搭建的项目去除eslint验证的方法
2018/09/29 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
使用Python将数组的元素导出到变量中(unpacking)
2016/10/27 Python
python3实现基于用户的协同过滤
2018/05/31 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
Python 实现训练集、测试集随机划分
2020/01/08 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
python实现TCP文件传输
2020/03/20 Python
Python无损压缩图片的示例代码
2020/08/06 Python
在pycharm中文件取消用 pytest模式打开的操作
2020/09/01 Python
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
苹果美国官方商城:Apple美国
2016/08/24 全球购物
澳大利亚香水在线:Price Rite Mart
2017/12/28 全球购物
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
美国社交购物市场:MassGenie
2019/02/18 全球购物
工程招投标邀请书
2014/01/26 职场文书
组织鉴定材料
2014/06/02 职场文书
生物工程专业求职信
2014/09/03 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
2015年管理人员工作总结
2015/05/13 职场文书