当前位置: 首页 > news >正文

UI自动化测试常见的Exception

一. StaleElementReferenceException:

 - 原因:引用的元素已过期。原因是页面刷新了,此时当然找不到之前页面的元素。- 解决方案:不确定什么时候元素就会被刷新。页面刷新后重新获取元素的思路不变,这时可以使用python的异常处理语句:try…except…,异常出现时重新执行,关键代码如下

编写脚本时使用异常try捕获异常后,页面刷新后重新获取元素,可以成功找到元素了:
在这里插入图片描述
二. ElementClickInterceptedException

- 原因:元素定位相互覆盖,元素已经找到,但是无法点击- 解决方案:方法一:使用强制等待,但是每次都有类似的元素无法点击使用强制等待的话会延长脚本执行时间
time.sleep()    
注意⚠️:之前便遇到过很多次该问题的报错,就没有管它,但是随着越来越多的元素报该错,每次使用强制等待会大大延长脚本的执行时间。方法二:显性等待
如下是显示等待的用法和区别
1. element_to_be_clickable--元素是否可点击
2. vibility of element_ located--元素是否可见
3. presence_of_element_located--元素是否存在
如上:三种等待方法,最开始我一直使用的是presence_of_element_located,判断元素是否存在;
最终还是报错,提示元素元素点击拦截异常。
element_to_be_clickable--等待元素出现可以点击,便可以元素定位成功方法三:使用JS点击
然而有时即使已经显式等待了,却仍然会报错: ElementClickInterceptedException,这多少
有点奇怪。为什么 webdriver 有时就是无法点击,我不知道,也许这和他首先执行的一些验证检查有关,
反正就在这一刻,它不给你点。

方法三的代码如下:
在这里插入图片描述
三. NoSuchElementException:

原因:- 前端出现变更,导致定位不到元素;- 页面未加载出来元素导致元素找不到,需要加个等待;- 定位语法错误;- 元素可能在新的Windows窗口,此时需要切换Windows;- 页面出现伪元素:显示的是::before、::after这类的元素,被伪元素包裹起来的元素经常会定位不到,此时就需要对伪元素进行处理了,解决方式如:http://testingpai.com/article/1638176966906

四.NoSuchWindowException:

 - 没找到窗口句柄handle(浏览器版本与驱动不兼容)- 注意⚠️:Web自动化中存在哪三种切换:1. windows窗口切换:切换到要操作的窗口;2. alert弹出框操作;3. iframe切换。操作方式如:https://blog.csdn.net/wsy_666/article/details/132325473

五.TimeoutException:
查找元素超时

六. NoSuchAttributeException:
属性错误

六. ElementNotSelectableException:
元素没有被选中

http://www.lryc.cn/news/127297.html

相关文章:

  • 魔棒:手机智能无人直播软件多少钱?
  • 网络安全 Day-32 Linux 系统定时任务补充
  • 【OpenGauss源码学习 —— 执行算子(hash join 算子)】
  • [Go版]算法通关村第十二关青铜——不简单的字符串转换问题
  • 十种排序算法(附动图)
  • 【校招VIP】测试类型之兼容性测试分析
  • STM32--TIM定时器(1)
  • Android取证——基础知识
  • 【学习心得】安装cuda/cudann和pytorch
  • 中电金信通过KCSP认证 云原生能力获权威认可
  • 【Spring】Bean的实例化
  • 2023牛客暑期多校训练营8-C Clamped Sequence II
  • 【GitLab私有仓库】如何在Linux上用Gitlab搭建自己的私有库并配置cpolar内网穿透?
  • 企业计算机服务器遭到了locked勒索病毒攻击如何解决,勒索病毒解密
  • Redis哨兵模式搭建
  • 大语言模型控制生成的过程Trick:自定义LogitsProcessor实践
  • Docker容器:docker的资源控制及docker数据管理
  • 从零开始打造家装预约咨询小程序
  • es线上处理命令记录
  • mysql 在nodejs中的简单使用(增删改查)
  • 1.MySQL数据库的基本操作
  • Zabbix-6.4.4 邮箱告警SMS告警配置
  • 网络安全 Day30-运维安全项目-容器架构上
  • 深入理解设计模式-创建型之单例模式
  • Vue中路由缓存问题及解决方法
  • Linux与bash(基础内容一)
  • NVIDIA Omniverse与GPT-4结合生成3D内容
  • Windows Server --- RDP远程桌面服务器激活和RD授权
  • 关于游戏盾
  • 回归预测 | MATLAB实现基于SSA-KELM-Adaboost麻雀算法优化核极限学习机结合AdaBoost多输入单输出回归预测