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,里面有各种软件测试+开发资料和技术可以一起交流学习哦。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!