自动化中遇到的问题归纳总结

1、动态元素定位不到

解决方法:尽量使用固定元素定位,如没有固定元素,则采用绝对路径进行定位,因为元素路径是唯一且不变的

2、自动化脚本执行速度较慢

尽量使用css方法定位元素,使用等待时,少用sleep方法,尽量不用隐式等待,涉及到一些if elif条件判断时,尽量把可能发生的条件放在前面写,这样可以减少程序判断的次数,提高效率

3、弹框内有按钮点击不到

解决方法:弹框里面有设置滚动条,首先进入弹框里面,将滚动条滑动到最底部才可以点击确定或者取消按钮

4、报错

启动后,打开谷歌浏览器,不出现内容,报浏览器不安全|data

解决方法:webdriver-chrome版本升级

5、元素没有加载出来

因为时间等待原因:显示等待(只匹配目标元素),隐式等待(等待页面加载完成),强制等待

6、定位的元素是随机变化的

解决方法:通过元素xpath或者css来定位

7、iframe或frame处理

解决方法:在元素定位过程中,如果出现了<frame>或者<iframe>标签,说明该页面中嵌套了一个新的页面,该页面内的元素无法直接定位。因此,在定位新页面元素之前,我们需要先执行driver.switch_to.frame()方法,切换到该frame下面,再对该frame下的元素进行定位和操作;如果想操作该frame以外的元素,可以通过driver.switch_to.parent_frame()方法切换到上一级frame。

8、出现"object is not iterable"

解决方法:

  1. 首先查看脚本,测试用例出现问题

  2. 组织用例时出现错误(我开始是用for循环遍历y,加入测试集合中,返回集合,老是会出现错误,最后改成下方代码,直接返回y,解决问题)

9、出现"Indentation Error"

是语法问题,脚本代码没有正确对齐

10、使用PO设计模式封装的页面元素类

都有初始化函数"init"

11、页面元素调用Page类时候

Page函数,后面括号的"self"不用写

12、Page的初始化包含(self,driver)两个元素

在页面封装类中,初始化中调用方式为Page.init(self,driver)

13、类中定义变量

比如x="hello",调用使用:self.x

14、在测试用例调用自己页面封装的类时

经过实例化后po=Lzsp(driver),定义函数时候, 不需要再括号中写self

15、打印输出时显示"not all arguments curerted during string format"

是说明前后参数不对应:%前面是一个"%s",而后面的参数是("xy","xy")两个。

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
Kaltistss22 分钟前
98.验证二叉搜索树
算法·leetcode·职场和发展
Tipriest_2 小时前
Ubuntu常用的软件格式deb, rpm, dmg, AppImage等打包及使用方法
linux·运维·ubuntu
真智AI2 小时前
利用 Claude Opus 4 自动化 GitHub 工作流:从安装到实战详解
运维·自动化·github
牛客企业服务3 小时前
2025年AI面试推荐榜单,数字化招聘转型优选
人工智能·python·算法·面试·职场和发展·金融·求职招聘
胡斌附体3 小时前
linux测试端口是否可被外部访问
linux·运维·服务器·python·测试·端口测试·临时服务器
愚润求学3 小时前
【Linux】自旋锁和读写锁
linux·运维
大锦终3 小时前
【Linux】常用基本指令
linux·运维·服务器·centos
知北游天4 小时前
Linux:多线程---深入互斥&&浅谈同步
linux·运维·服务器
Gappsong8744 小时前
【Linux学习】Linux安装并配置Redis
java·linux·运维·网络安全
try2find4 小时前
移动conda虚拟环境的安装目录
linux·运维·conda