首页 > 其他分享 >selenium笔记之多窗口

selenium笔记之多窗口

时间:2023-04-25 19:44:19浏览次数:34  
标签:webDriver 窗口 句柄 多窗口 selenium 校验 笔记 winHandle window

在使用selenium中,会经常遇到,校验弹窗,或者是多标签之类的,

会发现在当前webdriver中.查找想检查的元素,比如弹窗上某个元素就查找不到了

那么就出现了一个句柄的概念

在Selenium中,可以使用`driver.window_handles`方法获取当前浏览器中所有窗口的句柄。

该方法返回一个列表,其中包含每个窗口的唯一标识符。

可以使用这些句柄来在不同的窗口之间切换,例如使用`driver.switch_to.window(handle)`方法将控制转移到具有给定句柄的窗口。

话不多说上代码

此代码校验点有两个:

1、是不是新打开了一个窗口

2、新打开的窗口链接是不是符合预期

int numBefore = webDriver.getWindowHandles().size();//点击前有多少个句柄
((JavascriptExecutor) webDriver).executeScript("arguments[0].click();", webElement);//点击(有时候单纯的.click不生效就用这个方法)
//点击新打开页面
int numAfter = webDriver.getWindowHandles().size();//点击后有多少个句柄
if(numAfter>numBefore){
//说明是新建标签页打开的
String winHandleBefore = webDriver.getWindowHandle();
for(String winHandle : webDriver.getWindowHandles()) {
if (winHandle.equals(winHandleBefore)) {
continue;
}
webDriver.switchTo().window(winHandle);//将控制转移给新打开的句柄窗口以方便获取新窗口元素校验
break;
}
}
if(webDriver.getCurrentUrl().contains(校验点)
){
//校验点
}
//重新变成原来页面,方便后续继续回归原页面其它功能
if(numAfter>numBefore){
webDriver.close();
for(String winHandle : webDriver.getWindowHandles()) {
webDriver.switchTo().window(winHandle);
}
}

标签:webDriver,窗口,句柄,多窗口,selenium,校验,笔记,winHandle,window
From: https://www.cnblogs.com/happiness30/p/17353633.html

相关文章

  • 一线架构师实践指南读书笔记
    重大风险:功能质量约束高层切分:借助鲁棒图,初步识别功能别后的职责,就可以规划高层切分的具体方式分析和综合是思维方向相反的过程。一般是先分析后综合,没有分析就不能综合,没有综合,也只是片面的分析通过系统切分,虽然无法降低复杂性,当可以控制复杂性分层式概念架构:逻辑层物理层......
  • 红黑树笔记
    (本人笔记潦草,估计只有我能看懂,保存给自己看,不代表肯定让其他人能理解)附上源码笔记://SPDX-License-Identifier:GPL-2.0-or-later/*RedBlackTrees(C)1999AndreaArcangeli<[email protected]>(C)2002DavidWoodhouse<[email protected]>(C)2012Mi......
  • KMP算法学习笔记
    总算把这个东西搞懂了......KMP是一个求解字符串匹配问题的算法。这个东西的核心是一个\(next\)数组,\(next_i\)表示字符串第\(0\simi\)项的相同的前缀和后缀的最大长度。这里的前缀和后缀概念略有不同,如DUCK的前缀为D,DU,DUC,后缀为K,CK,UCK,不包含DUCK本身。再举一个例子......
  • 拉格朗日插值学习笔记
    这个算法的用途是,给出\(n\)个点,第\(i\)个点为\((x_i,y_i)\),它可以找出一个\(n-1\)次的多项式\(f(x)\),以便求出\(x\)值为其他情况。当然也是可以用来整活的,可以构造一些奇奇怪怪的多项式坑人。首先这个多项式存在是显然的,然后我们求它的方式是一个构造。我们考虑跟中国剩余......
  • SOA笔记
    1,SOA应用是面向服务的业务应用,是采用SOA的思想、模块化、可复用的业务应用。通过将SOA应用作为业务的载体,利用服务化的接口,实现在系统间、部门间甚至企业间的复用。和以往应用相比,SOA应用具有模块化、服务化、数据标准化、易集成、用户体验良好、灵活......
  • [Web app] 笔记
    如何回收应用池1.找到需要回收的webapp2.找到“应用服务编辑器(预览版)”,打开编辑器3.找到web.config文件,可以随意添加一点注释或修改任何内容,自动保存后即可进行应用池回收 ......
  • 老杜Vue实战教程完整版笔记(二)Vue核心技术
    动力节点老杜全新版Vue教程笔记分享给大家学习の地止:https://www.bilibili.com/video/BV17h41137i4视频教程从Vue2开始讲解,一步一个案例,知识点由浅入深,然后很自然的过度到Vue3版本。Vue3是目前企业中使用最多的一个版本。视频中会把每一个Vue的知识点讲解的非常通透,不但举例......
  • MEMORY REPLAY WITH DATA COMPRESSION FOR CONTINUAL LEARNING--阅读笔记
    MEMORYREPLAYWITHDATACOMPRESSIONFORCONTINUALLEARNING--阅读笔记摘要:在这项工作中,我们提出了使用数据压缩(MRDC)的内存重放,以降低旧的训练样本的存储成本,从而增加它们可以存储在内存缓冲区中的数量。观察到压缩数据的质量和数量之间的权衡对于内存重放的有效性是非常重要......
  • 笔记
    1.回顾1.Redis持久化方式:--把内存中的数据持久化到磁盘中的过程。--防止数据丢失。(1)RDB:快照模式[1]save[2]bgsave[3]配置文件自动触发(2)AOF:把写命令追加到日志文件中.2.Redis集群的模式:1.主从模式2.哨兵模式3.集群模式。2.正文1.java连接red......
  • matlab学习笔记9 随机变量与概率分布
    概率分布函数下图的函数作用是求某点处的B(n,p)的概率,横坐标为实验所得值,即x,从中可见e(x)=12unidpdf(k,N)为均匀分布函数的概率密度在随机范围为1到N的正整数中取k的概率,若需要离散的情况可改用unifpdfy=unidpdf(1:1:10,20)%unidpdf(k,N)为均匀分布函数的概率密度在随机范......