前言:
本文为在霍格沃兹测试开发学社中学习到的一些技术写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~
app异常弹框是正常现象,比如系统弹框,使用过程中出现电话和信息。
弹框出现的位置和时机是非常不确定的,可能会出现在开始使用app时,也可能出现在app使用结束时。因此处理异常弹框的功能最好封装在框架层,可以在每次查找元素的时候来进行判断是否有弹框存在。
对于可预期的弹框,可使用黑名单弹框异常处理逻辑。
def find(self,by,locator):
try:
return self.driver.find_elementby(by,locator)
except Exception as e:
print("未找到元素,处理异常")
# 使用find_elements()未找到的话会返回null,不会报错,可以保证流程正常进行下去。find_element()会报错导致程序无法正常运行下去
eles = self.driver.find_elements(*black)
if len(eles) > 0:
#点击弹框
eles[0].click()
#继续查找元素
return self.find(by,locator)
raise e
运行过程中不定时弹框(广告弹框、升级提示弹框、新消息提示弹框等等)
弹框不是bug(ui界面提示、警告的作用)
# 声明一个黑名单
def black_wrapper(fun):
def run(*args, **kwargs):
basepage = args[0]
try:
return fun(*args, **kwargs)
except Exception as e:
for black in black_list:
eles = basepage.driver.find_elements(*black)
if len(eles) > 0:
eles[0].click()
return fun(*args, **kwargs)
raise e
return run
@black_wrapper
def find(self, by, locator)
return self.driver.find_element(by, locator)
文末说明:
接口测试中我们很容易混淆Session、cookie和token,你知道他们有什么区别吗?快来跟我一起看,一篇文章让你了解三者的区别。
⬇⬇⬇⬇⬇⬇⬇
:接口测试经典面试题:Session、cookie、token有什么区别?