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 文件重命名工具代码
Jul 26 Python
在服务器端实现无间断部署Python应用的教程
Apr 16 Python
举例讲解Django中数据模型访问外键值的方法
Jul 21 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
Apr 17 Python
Python实现求解一元二次方程的方法示例
Jun 20 Python
Linux下Python安装完成后使用pip命令的详细教程
Nov 22 Python
详解Python给照片换底色(蓝底换红底)
Mar 22 Python
python实现飞机大战游戏
Oct 26 Python
python中resample函数实现重采样和降采样代码
Feb 25 Python
Python numpy矩阵处理运算工具用法汇总
Jul 13 Python
Pycharm配置autopep8实现流程解析
Nov 28 Python
详解python3 GUI刷屏器(附源码)
Feb 18 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
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
js禁止页面刷新与后退的方法
2015/06/08 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享
2016/05/09 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
2016/07/28 Javascript
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
BootStrap Table 后台数据绑定、特殊列处理、排序功能
2017/05/27 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
记一次webpack3升级webpack4的踩坑经历
2018/06/12 Javascript
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
webpack4简单入门实例
2018/09/06 Javascript
关于微信小程序map组件z-index的层级问题分析
2019/07/09 Javascript
bootstrap-table+treegrid实现树形表格
2019/07/26 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
[01:07:22]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG加赛
2014/05/26 DOTA
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
[01:45:05]VGJ.T vs Newbee Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
[49:21]TNC vs VG 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第三场 8.20.mp4
2019/08/22 DOTA
python实现搜索本地文件信息写入文件的方法
2016/02/22 Python
windows上安装Anaconda和python的教程详解
2017/03/28 Python
pandas series序列转化为星期几的实例
2018/04/11 Python
python 剪切移动文件的实现代码
2018/08/02 Python
Python约瑟夫生者死者小游戏实例讲解
2021/01/04 Python
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
求职信内容考虑哪几点
2013/10/05 职场文书
《长江之歌》教学反思
2014/04/17 职场文书
试用期转正员工自我评价
2014/09/18 职场文书
教师节班会开场白
2015/06/01 职场文书
建立共青团委员会的请示
2019/04/02 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python
nginx请求限制配置方法
2021/07/09 Servers
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL
win11无法添加打印机怎么办? 提示windows无法打开添加打印机的解决办法
2022/04/05 数码科技