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实现多线程抓取知乎用户
Dec 12 Python
python用Pygal如何生成漂亮的SVG图像详解
Feb 10 Python
深入理解Python3 内置函数大全
Nov 23 Python
python表格存取的方法
Mar 07 Python
python获取文件真实链接的方法,针对于302返回码
May 14 Python
Python实现针对json中某个关键字段进行排序操作示例
Dec 25 Python
python实现对服务器脚本敏感信息的加密解密功能
Aug 13 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
Jan 10 Python
python如何通过pyqt5实现进度条
Jan 20 Python
Tensorflow 多线程与多进程数据加载实例
Feb 05 Python
Python @property及getter setter原理详解
Mar 31 Python
Python使用plt.boxplot() 参数绘制箱线图
Jun 04 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写出自己的BLOG系统 2
2010/04/12 PHP
PHP版网站缓存加快打开速度的方法分享
2012/06/03 PHP
PHP笔记之:日期函数的使用介绍
2013/04/24 PHP
PHP中调用SVN命令更新网站方法
2015/01/07 PHP
浅析THINKPHP的addAll支持的最大数据量
2015/02/03 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
2016/03/17 PHP
php魔术方法功能与用法实例分析
2016/10/19 PHP
laravel 使用事件系统统计浏览量的实现
2019/10/16 PHP
Javascript 自适应高度的Tab选项卡
2011/04/05 Javascript
jQuery的显示和隐藏方法与css隐藏的样式对比
2013/10/18 Javascript
简单实用的反馈表单无刷新提交带验证
2013/11/15 Javascript
jquery对单选框,多选框,文本框等常见操作小结
2014/01/08 Javascript
JS 删除字符串最后一个字符的实现代码
2014/02/20 Javascript
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
jQuery解决浏览器兼容性问题案例分析
2016/04/15 Javascript
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
2019/03/27 Javascript
Angular Excel 导入与导出的实现代码
2019/04/17 Javascript
本地文件上传到七牛云服务器示例(七牛云存储)
2014/01/11 Python
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
浅析Python中的多条件排序实现
2016/06/07 Python
pyhton列表转换为数组的实例
2018/04/04 Python
使用python实现画AR模型时序图
2019/11/20 Python
Python configparser模块操作代码实例
2020/06/08 Python
python实现学生信息管理系统源码
2021/02/22 Python
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
初级软件工程师面试题 Junior Software Engineer Interview
2015/02/15 面试题
大学毕业后的十年规划
2014/01/07 职场文书
剪枝的学问教学反思
2014/02/07 职场文书
自强自立美德少年事迹材料
2014/08/16 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书
python如何利用cv2模块读取显示保存图片
2021/06/04 Python