selenium元素定位---元素点击交互异常解决方法

embedded/2024/11/20 8:21:49/

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快    

1、异常原因

在编写ui自动化时,执行报错元素无法点击:ElementClickInterceptedException

具体报错:selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <span class="el-checkbox__inner">

</span> is not clickable at point (1421, 283). Other element would receive the click: <div class="cell">...</div>

E (Session info: chrome=104.0.5112.102)

意思是,元素定位相互覆盖,元素已经找到,但是无法点击

2、解决方法

方法一:使用强制等待,但是每次都有类似的元素无法点击使用强制等待的话会延长脚本执行时间

time.sleep()  

前言:之前便遇到过很多次该问题的报错,就没有管它,但是随着越来越多的元素报该错,每次使用强制等待会大大延长脚本的执行时间,于是便网上找各种方法解决该问题,最终发现是自己使用显示等待的方法错了

如下是显示等待的用法和区别

方法二:显性等待

element_to_be_clickable--元素是否可点击

vibility _of_ element_ located--元素是否可见

presence_of_element_located--元素是否存在

如上:三种等待方法,最开始我一直使用的是presence_of_element_located,判断元素是否存在,最终还是报错,提示元素元素点击拦截异常

百度了下使用element_to_be_clickable--等待元素出现可以点击,就执行成功了

方法三:使用JS点击

然而有时即使已经显式等待了,却仍然会报错: ElementClickInterceptedException,这多少有点奇怪,为什么 webdriver 有时就是无法点击,我不知道,也许这和他首先执行的一些验证检查有关,反正就在这一刻,它不给你点

解决方法:

 👆  这是通过 JavaScript 完成的点击,js可以避开校验以上便是在编写自动化时元素定位时踩的坑,以此记录防止再次踩坑

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。


http://www.ppmy.cn/embedded/139022.html

相关文章

设计模式——模板方法模式

定义一个操作中的算法框架&#xff0c;而将一些步骤延迟到子类中&#xff0c;模版方法模式使得子类可以不改变算法结构即可重新定义算法的某些特定步骤 1.优点&#xff1a; 在父类中定义一个算法&#xff0c;而右它的子类来实现细节处理&#xff0c;在子类实现详细的处理算法并…

Ascend C算子性能优化实用技巧05——API使用优化

Ascend C是CANN针对算子开发场景推出的编程语言&#xff0c;原生支持C和C标准规范&#xff0c;兼具开发效率和运行性能。使用Ascend C&#xff0c;开发者可以基于昇腾AI硬件&#xff0c;高效的实现自定义的创新算法。 目前已经有越来越多的开发者使用Ascend C&#xff0c;我们…

梯度消失和梯度爆炸

梯度消失与梯度爆炸 这两个问题通常在深度神经网络中出现&#xff0c;特别是在反向传播过程中&#xff0c;会严重影响网络的训练效果。 1. 梯度消失&#xff08;Vanishing Gradient&#xff09; 现象 在反向传播时&#xff0c;梯度值逐层减小&#xff0c;导致靠近输入层的权…

用 Python 从零开始创建神经网络(五):损失函数(Loss Functions)计算网络误差

用损失函数&#xff08;Loss Functions&#xff09;计算网络误差 引言1. 分类交叉熵损失&#xff08;Categorical Cross-Entropy Loss&#xff09;2. 分类交叉熵损失类&#xff08;The Categorical Cross-Entropy Loss Class&#xff09;展示到目前为止的所有代码3. 准确率计算…

Android从Drawable资源Id直接生成Bitmap,Kotlin

Android从Drawable资源Id直接生成Bitmap,Kotlin val t1 System.currentTimeMillis()val bmp getBmpFromDrawId(this, R.mipmap.ic_launcher_round)Log.d("fly", "1 ${bmp?.byteCount} h${bmp?.height} w${bmp?.width} cost time${System.currentTimeMillis…

from sklearn.preprocessing import Imputer.处理缺失数据的工具

在 Python 的 scikit-learn 库中&#xff0c;Imputer 类是一个用于处理缺失数据的工具。它可以用来填充数据集中的缺失值&#xff08;通常表示为 NaN 或 None&#xff09;。Imputer 类提供了几种不同的填充策略&#xff0c;包括&#xff1a; 均值填充&#xff08;mean&#xf…

Spring Cloud Alibaba [Gateway]网关。

1 简介 网关作为流量的入口&#xff0c;常用功能包括路由转发、权限校验、限流控制等。而springcloudgateway 作为SpringCloud 官方推出的第二代网关框架&#xff0c;取代了Zuul网关。 1.1 SpringCloudGateway特点: &#xff08;1&#xff09;基于Spring5&#xff0c;支持响应…

微服务网关聚合swagger(knife4j版本)

前言 简单集成&#xff0c;最小的依赖及配置&#xff0c;采取默认为主 步骤 依赖<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-gateway-spring-boot-starter</artifactId><version>4.4.0</version> &…