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最长公共子串算法实例
Mar 07 Python
python 爬虫出现403禁止访问错误详解
Mar 11 Python
python Socket之客户端和服务端握手详解
Sep 18 Python
python+opencv轮廓检测代码解析
Jan 05 Python
python删除某个字符
Mar 19 Python
如何使用VSCode愉快的写Python于调试配置步骤
Apr 06 Python
浅谈pyqt5在QMainWindow中布局的问题
Jun 21 Python
Python类中的魔法方法之 __slots__原理解析
Aug 26 Python
python3发送request请求及查看返回结果实例
Apr 30 Python
基于Python把网站域名解析成ip地址
May 25 Python
Python socket服务常用操作代码实例
Jun 22 Python
python实现ping命令小程序
Dec 28 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 程序授权验证开发思路
2009/07/09 PHP
深入分析php中接口与抽象类的区别
2013/06/08 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
Laravel timestamps 设置为unix时间戳的方法
2019/10/11 PHP
javascript确认框的三种使用方法
2013/12/17 Javascript
jQuery实现图片预加载效果
2015/11/27 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
Angular Module声明和获取重载实例代码
2016/09/14 Javascript
jquery实现(textarea)placeholder自动换行
2016/12/22 Javascript
详解 vue better-scroll滚动插件排坑
2018/02/08 Javascript
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
pycharm 使用心得(四)显示行号
2014/06/05 Python
python3.6连接MySQL和表的创建与删除实例代码
2017/12/28 Python
快速解决安装python没有scripts文件夹的问题
2018/04/03 Python
python读取csv文件并把文件放入一个list中的实例讲解
2018/04/27 Python
Python实现八皇后问题示例代码
2018/12/09 Python
python 限制函数执行时间,自己实现timeout的实例
2019/01/12 Python
详解python实现数据归一化处理的方式:(0,1)标准化
2019/07/17 Python
Django框架中序列化和反序列化的例子
2019/08/06 Python
Python坐标线性插值应用实现
2019/11/13 Python
Python新手学习raise用法
2020/06/03 Python
python3.7添加dlib模块的方法
2020/07/01 Python
Python使用shutil模块实现文件拷贝
2020/07/31 Python
python获取百度热榜链接的实例方法
2020/08/25 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
python 下载文件的多种方法汇总
2020/11/17 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
新闻学专业个人求职信写作
2014/02/04 职场文书
六年级学生评语
2014/04/22 职场文书
平安工地汇报材料
2014/08/19 职场文书
城管年度个人总结
2015/02/28 职场文书
python3实现无权最短路径的方法
2021/05/12 Python
Java实现二分搜索树的示例代码
2022/03/17 Java/Android