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 相关文章推荐
python33 urllib2使用方法细节讲解
Dec 03 Python
Python的ORM框架SQLAlchemy入门教程
Apr 28 Python
Python二分查找详解
Sep 13 Python
Python设置Socket代理及实现远程摄像头控制的例子
Nov 13 Python
python 简单照相机调用系统摄像头实现方法 pygame
Aug 03 Python
Python检查和同步本地时间(北京时间)的实现方法
Dec 03 Python
浅谈python的深浅拷贝以及fromkeys的用法
Mar 08 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
Dec 19 Python
用 Python 制作地球仪的方法
Apr 24 Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
Jun 10 Python
python中pdb模块实例用法
Jan 15 Python
python垃圾回收机制原理分析
Apr 13 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中函数内引用全局变量的方法
2008/10/20 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
2011/08/18 PHP
微信公众平台接口开发入门示例
2014/12/24 PHP
php实现网站顶踩功能的完整前端代码
2015/07/19 PHP
javascript中如何处理引号编码&amp;#034;
2013/08/15 Javascript
javascript静态页面传值的三种方法分享
2013/11/12 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
详解NodeJS框架express的路径映射(路由)功能及控制
2017/03/24 NodeJs
Vue2.0父子组件传递函数的教程详解
2017/10/16 Javascript
详解AngularJS之$window窗口对象
2018/01/17 Javascript
通过Nodejs搭建网站简单实现注册登录流程
2019/06/14 NodeJs
vue axios重复点击取消上一次请求封装的方法
2019/06/19 Javascript
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
netbeans7安装python插件的方法图解
2013/12/24 Python
Python 正则表达式入门(中级篇)
2016/12/07 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
Python实现的文轩网爬虫完整示例
2019/05/16 Python
Python考拉兹猜想输出序列代码实践
2019/07/05 Python
CSS3弹性盒模型开发笔记(一)
2016/04/26 HTML / CSS
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
马德里著名的运动鞋商店:NOIRFONCE
2019/04/12 全球购物
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
名词解释型面试题(主要是网络)
2013/12/27 面试题
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
幼儿园保育员辞职信
2014/01/12 职场文书
幼儿园教研活动方案
2014/01/19 职场文书
运动会通讯稿150字
2014/02/15 职场文书
爱护公物演讲稿
2014/09/09 职场文书
流动人口婚育证明范本
2014/09/26 职场文书
个人股份合作协议书
2014/10/24 职场文书
师范生见习报告
2014/10/31 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
Mysql排序的特性详情
2021/11/01 MySQL
PYTHON InceptionV3模型的复现详解
2022/05/06 Python
win10电脑老是死机怎么办?win10系统老是死机的解决方法
2022/08/05 数码科技