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优化技巧之利用ctypes提高执行速度
Sep 11 Python
python WindowsError的错误代码详解
Jul 23 Python
Python随机生成均匀分布在三角形内或者任意多边形内的点
Dec 14 Python
Django自定义过滤器定义与用法示例
Mar 22 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
Nov 16 Python
windows下搭建python scrapy爬虫框架步骤
Dec 23 Python
PyQt5创建一个新窗口的实例
Jun 20 Python
python 用所有标点符号分隔句子的示例
Jul 15 Python
Python 模拟动态产生字母验证码图片功能
Dec 24 Python
pytorch之ImageFolder使用详解
Jan 06 Python
Python如何实现FTP功能
May 28 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
Nov 11 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 zip文件解压类代码
2009/12/02 PHP
PHP使用json_encode函数时不转义中文的解决方法
2014/11/12 PHP
php图片添加水印例子
2016/07/20 PHP
thinkPHP框架中执行原生SQL语句的方法
2017/10/25 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
Laravel框架控制器的request与response用法示例
2019/09/30 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
2015/09/16 Javascript
vue2.0开发实践总结之入门篇
2016/12/06 Javascript
Require.JS中的几种define定义方式示例
2017/06/01 Javascript
ES6/JavaScript使用技巧分享
2017/12/14 Javascript
p5.js入门教程之图片加载
2018/03/20 Javascript
基于nodejs res.end和res.send的区别
2018/05/14 NodeJs
angular4笔记系列之内置指令小结
2018/11/09 Javascript
TypeScript的安装、使用、自动编译的实现
2020/04/10 Javascript
JavaScript直接调用函数与call调用的区别实例分析
2020/05/22 Javascript
vue实现公共方法抽离
2020/07/31 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
基于JavaScript实现简单抽奖功能代码实例
2020/10/20 Javascript
Python实现简单多线程任务队列
2016/02/27 Python
老生常谈Python基础之字符编码
2017/06/14 Python
Django1.9 加载通过ImageField上传的图片方法
2018/05/25 Python
python爬虫之线程池和进程池功能与用法详解
2018/08/02 Python
Pycharm更换python解释器的方法
2018/10/29 Python
Python中的异常处理try/except/finally/raise用法分析
2019/02/28 Python
Python迭代器iterator生成器generator使用解析
2019/10/24 Python
python输出pdf文档的实例
2020/02/13 Python
html5写一个BUI折叠菜单插件的实现方法
2019/09/11 HTML / CSS
新西兰领先的内衣店:Bendon Lingerie新西兰
2018/07/11 全球购物
大学毕业生自我鉴定
2013/11/05 职场文书
问卷调查计划书
2014/01/10 职场文书
会计专业自荐书
2014/07/08 职场文书
委托函范文
2015/01/29 职场文书
2015年幼儿园中班工作总结
2015/04/25 职场文书
Nginx的基本概念和原理
2022/03/21 Servers