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 相关文章推荐
centos6.7安装python2.7.11的具体方法
Jan 16 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
Jun 12 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
May 18 Python
python操作excel的包(openpyxl、xlsxwriter)
Jun 11 Python
Python实现随机创建电话号码的方法示例
Dec 07 Python
Python 求数组局部最大值的实例
Nov 26 Python
基于python3的socket聊天编程
Feb 17 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
Feb 26 Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
Mar 13 Python
新建文件时Pycharm中自动设置头部模板信息的方法
Apr 17 Python
pycharm第三方库安装失败的问题及解决经验分享
May 09 Python
解决numpy和torch数据类型转化的问题
May 23 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
压力如何影响浓缩咖啡品质
2021/03/03 咖啡文化
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
2012/08/31 PHP
php图片处理函数获取类型及扩展名实例
2014/11/19 PHP
Yii中创建自己的Widget实例
2016/01/05 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
Firefox中autocomplete=&quot;off&quot; 设置不起作用Bug的解决方法
2011/03/25 Javascript
读jQuery之一(对象的组成)
2011/06/11 Javascript
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
jQuery UI 实现email输入提示实例
2013/08/15 Javascript
js中reverse函数的用法详解
2013/12/26 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
JavaScript基础知识之方法汇总结
2016/01/24 Javascript
Bootstrap每天必学之日期控制
2016/03/07 Javascript
详谈表单重复提交的三种情况及解决方法
2017/08/16 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
2018/03/17 Javascript
layui自定义工具栏的方法
2019/09/19 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
js代码实现轮播图
2020/05/04 Javascript
前端如何实现动画过渡效果
2021/02/05 Javascript
Python使用lxml模块和Requests模块抓取HTML页面的教程
2016/05/16 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
详解Python 解压缩文件
2019/04/09 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
python中pow函数用法及功能说明
2020/12/04 Python
如何查看浏览器对html5的支持情况
2020/12/15 HTML / CSS
英国最大的海报商店:GB Posters
2018/03/20 全球购物
介绍一下Mysql的存储引擎
2015/02/12 面试题
社区食品安全实施方案
2014/03/28 职场文书
公司法人授权委托书范本
2014/09/12 职场文书
六一儿童节标语
2014/10/08 职场文书
初中班主任培训心得体会
2016/01/07 职场文书
django中websocket的具体使用
2022/01/22 Python