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中self原理实例分析
Apr 30 Python
PyQT实现多窗口切换
Apr 20 Python
使用Python监视指定目录下文件变更的方法
Oct 15 Python
浅谈python 导入模块和解决文件句柄找不到问题
Dec 15 Python
对pyqt5多线程正确的开启姿势详解
Jun 14 Python
python 批量修改 labelImg 生成的xml文件的方法
Sep 09 Python
Python Collatz序列实现过程解析
Oct 12 Python
Python 中的 import 机制之实现远程导入模块
Oct 29 Python
python求质数列表的例子
Nov 24 Python
Python imutils 填充图片周边为黑色的实现
Jan 19 Python
python logging.basicConfig不生效的原因及解决
Feb 20 Python
parser.add_argument中的action使用
Apr 20 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&amp;&amp;mysql)五
2006/10/09 PHP
PHP获取MAC地址的函数代码
2011/09/11 PHP
关于Zend Studio 配色方案插件的介绍
2013/06/24 PHP
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
2011/03/10 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
基于Javascript实现返回顶部按钮
2016/02/29 Javascript
BootStrap智能表单demo示例详解
2016/06/13 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
Vue.js第四天学习笔记(组件)
2016/12/02 Javascript
jquery Ajax 全局调用封装实例详解
2017/01/16 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
2017/04/13 Javascript
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
JS利用正则表达式实现简单的密码强弱判断实例
2017/06/16 Javascript
微信小程序用户自定义模版用法实例分析
2017/11/28 Javascript
使用 Node.js 实现图片的动态裁切及算法实例代码详解
2018/09/29 Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
2020/07/22 Javascript
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
python实现根据图标提取分类应用程序实例
2014/09/28 Python
Python IDLE入门简介
2017/12/08 Python
Python中实现最小二乘法思路及实现代码
2018/01/04 Python
python mac下安装虚拟环境的图文教程
2019/04/12 Python
使用Python创建简单的HTTP服务器的方法步骤
2019/04/26 Python
python下的opencv画矩形和文字注释的实现方法
2019/07/09 Python
Python安装第三方库攻略(pip和Anaconda)
2020/10/15 Python
Python包资源下载路径报404解决方案
2020/11/05 Python
打印机墨盒:123Inkjets
2017/02/16 全球购物
德国柯吉澳趣味家居:Koziol
2017/08/24 全球购物
新加坡最佳婴儿用品店:Mamahood.com.sg
2018/08/26 全球购物
初中高效课堂实施方案
2014/02/26 职场文书
不忘国耻振兴中华演讲稿
2014/05/14 职场文书
房地产推广策划方案
2014/05/19 职场文书
2014年小学体育工作总结
2014/12/11 职场文书
python爬取网页版QQ空间,生成各类图表
2021/06/02 Python
淡雅古典唯美少女娇媚宁静迷人写真
2022/03/21 杂记