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操作xml文件详细介绍
Jun 09 Python
Python格式化css文件的方法
Mar 10 Python
全面理解Python中self的用法
Jun 04 Python
在Python中执行系统命令的方法示例详解
Sep 14 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
Apr 02 Python
python 日志增量抓取实现方法
Apr 28 Python
python调用Matplotlib绘制分布点并且添加标签
May 31 Python
在python中利用try..except来代替if..else的用法
Dec 19 Python
解决Opencv+Python cv2.imshow闪退问题
Apr 24 Python
django 连接数据库出现1045错误的解决方式
May 14 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
Feb 04 Python
Python用requests库爬取返回为空的解决办法
Feb 21 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/10/23 PHP
使用PHP生成二维码的方法汇总
2015/07/22 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
PHP7基于curl实现的上传图片功能
2018/05/11 PHP
javascript 进阶篇2 CSS XML学习
2012/03/14 Javascript
jquery foreach使用示例
2013/09/12 Javascript
javascript实现动态侧边栏代码
2014/02/19 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
Bootstrap每天必学之日期控制
2016/03/07 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
2016/08/01 Javascript
pc加载更多功能和移动端下拉刷新加载数据
2016/11/07 Javascript
AngularJs定时器$interval 和 $timeout详解
2017/05/25 Javascript
vue 数组和对象不能直接赋值情况和解决方法(推荐)
2017/10/25 Javascript
Angular实现双向折叠列表组件的示例代码
2017/11/21 Javascript
利用Node.js批量抓取高清妹子图片实例教程
2018/08/02 Javascript
浅谈Vue数据响应思路之数组
2018/11/06 Javascript
JS集合set类的实现与使用方法示例
2019/02/01 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
VUE+node(express)实现前后端分离
2019/10/13 Javascript
基于js实现数组相邻元素上移下移
2020/05/19 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
2020/10/09 Javascript
举例详解Python中的split()函数的使用方法
2015/04/07 Python
python开发利器之ulipad的使用实践
2017/03/16 Python
详解Python3中ceil()函数用法
2019/02/19 Python
Python实现判断一个整数是否为回文数算法示例
2019/03/02 Python
用python爬取历史天气数据的方法示例
2019/12/30 Python
基于Pytorch SSD模型分析
2020/02/18 Python
HTML5 window/iframe跨域传递消息 API介绍
2013/08/26 HTML / CSS
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
KARATOV珠宝在线商店:俄罗斯珠宝品牌
2019/03/13 全球购物
财务部副经理岗位职责范本
2014/06/17 职场文书
个人批评与自我批评发言稿
2014/09/28 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
《三国志》赏析
2019/08/27 职场文书
python爬虫之爬取笔趣阁小说
2021/04/22 Python