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 装饰器功能以及函数参数使用介绍
Jan 27 Python
Python切片用法实例教程
Sep 08 Python
python按照多个字符对字符串进行分割的方法
Mar 17 Python
Python最火、R极具潜力 2017机器学习调查报告
Dec 11 Python
python处理csv数据动态显示曲线实例代码
Jan 23 Python
对Django项目中的ORM映射与模糊查询的使用详解
Jul 18 Python
Python基础之函数原理与应用实例详解
Jan 03 Python
Python中pyecharts安装及安装失败的解决方法
Feb 18 Python
Python中的xlrd模块使用原理解析
May 21 Python
详解Django中views数据查询使用locals()函数进行优化
Aug 24 Python
Python开发入门——迭代的基本使用
Sep 03 Python
Python用any()函数检查字符串中的字母以及如何使用all()函数
Apr 14 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项目的方法
2006/10/09 PHP
PHP安全配置
2006/10/09 PHP
php使用ICQ网关发送手机短信
2013/10/30 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
一个JS翻页效果
2007/07/23 Javascript
Javascript 中的 call 和 apply使用介绍
2012/02/22 Javascript
js实现一个省市区三级联动选择框代码分享
2013/03/06 Javascript
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
2016/01/18 Javascript
两种方法解决javascript url post 特殊字符转义 + &amp; #
2016/04/13 Javascript
JavaScript 基础函数_深入剖析变量和作用域
2016/05/18 Javascript
基于JavaScript实现鼠标箭头移动图片跟着移动
2016/08/30 Javascript
NodeJS和BootStrap分页效果的实现代码
2016/11/07 NodeJs
jquery设置css样式的多种方法(总结)
2017/02/21 Javascript
angular4自定义组件详解
2017/09/28 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
vue-cli 构建骨架屏的方法示例
2018/11/08 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
2019/02/27 jQuery
layui的数据表格+springmvc实现搜索功能的例子
2019/09/28 Javascript
vue+导航锚点联动-滚动监听和点击平滑滚动跳转实例
2019/11/13 Javascript
如何构建 vue-ssr 项目的方法步骤
2020/08/04 Javascript
全网小程序接口请求封装实例代码
2020/11/06 Javascript
重命名批处理python脚本
2013/04/05 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
Python3将jpg转为pdf文件的方法示例
2019/12/13 Python
详谈tensorflow gfile文件的用法
2020/02/05 Python
Python configparser模块配置文件过程解析
2020/03/03 Python
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
2016/11/20 面试题
建龙钢铁面试总结
2014/04/15 面试题
自我评价范文
2013/12/22 职场文书
党员自我批评与反省材料
2014/02/10 职场文书
初中三好学生自我鉴定
2014/04/07 职场文书
iPhone13将有八大升级
2021/04/15 数码科技
微信小程序纯CSS实现无限弹幕滚动效果
2022/09/23 HTML / CSS