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语言描述连续子数组的最大和
Jan 04 Python
Python快速查找list中相同部分的方法
Jun 27 Python
Python 判断奇数偶数的方法
Dec 20 Python
python 判断矩阵中每行非零个数的方法
Jan 26 Python
浅析Python3中的对象垃圾收集机制
Jun 06 Python
Python3.7 pyodbc完美配置访问access数据库
Oct 03 Python
Pycharm最常用的快捷键及使用技巧
Mar 05 Python
Python读入mnist二进制图像文件并显示实例
Apr 24 Python
Python中zipfile压缩文件模块的基本使用教程
Jun 14 Python
python -v 报错问题的解决方法
Sep 15 Python
Anaconda安装pytorch及配置PyCharm 2021环境
Jun 04 Python
Python下opencv使用hough变换检测直线与圆
Jun 18 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
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
Yii的Srbac插件用法详解
2016/07/14 PHP
php取出数组单个值的方法
2018/03/12 PHP
javascript replace()正则替换实现代码
2010/02/26 Javascript
js获取系统的根路径实现介绍
2013/09/08 Javascript
javascript if条件判断方法小结
2014/05/17 Javascript
Dojo Javascript 编程规范 规范自己的JavaScript书写
2014/10/26 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
关于vue.js中实现方法内某些代码延时执行
2019/11/14 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
如何在Node和浏览器控制台中打印彩色文字
2020/01/09 Javascript
Python中的fileinput模块的简单实用示例
2015/07/09 Python
Python使用filetype精确判断文件类型
2017/07/02 Python
python爬虫_自动获取seebug的poc实例
2017/08/05 Python
Python 比较两个数组的元素的异同方法
2017/08/17 Python
Python将一个Excel拆分为多个Excel
2018/11/07 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
2020/05/22 Python
Python 解决相对路径问题:&quot;No such file or directory&quot;
2020/06/05 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
python中round函数保留两位小数的方法
2020/12/04 Python
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
什么是SCM(软件配置管理)
2014/08/16 面试题
毕业生求职推荐信
2013/11/04 职场文书
材料专业大学毕业生自荐书
2014/07/02 职场文书
金融管理专业求职信
2014/07/10 职场文书
测绘工程专业求职信
2014/07/15 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书
写一个Python脚本自动爬取Bilibili小视频
2021/04/24 Python
JavaScript实现登录窗体
2021/06/22 Javascript
详解JavaScript中Arguments对象用途
2021/08/30 Javascript