黑名单处理
- 运行过程中不定时弹框(广告弹窗,升级提示框,新消息提示框等等)
- 弹框不是 BUG(UI 界面提示,警告的作用)
方法一:常规处理
-
def find(self, by, locator):
-
try:
-
return self.driver.find_element(by, locator)
-
except Exception as e:
-
for black in black_list:
-
eles = self.driver.find_elements(*black)
-
if len(eles) > 0:
-
eles[0].click()
-
return find(by, locator)
-
raise e
方法二:装饰器处理
装饰器的优势
- 对原有函数的功能增强
- 不改变原有函数的逻辑
- 使代码更简洁、易维护
-
__BLACK_LIST = []
-
def black_handle(func):
-
"""黑名单处理机制"""
-
def _inner(*args, **kwargs):
-
inner_arg = args[0]
-
try:
-
func(*args, **kwargs)
-
# logger.info(f"查找元素:{locator}--->成功")
-
except Exception as e:
-
logger.info("未找到元素")
-
logger.info(f"异常信息:{e}")
-
logger.info("处理异常")
-
for i in __BLACK_LIST:
-
elements = inner_arg.driver.find_elements(*i)
-
if len(elements) > 0:
-
elements[0].click()
-
return func(*args, **kwargs)
-
raise e
-
return _inner
装饰函数或方法
-
@black_handle
-
def do_find(self, locator: tuple):
-
"""获取单个元素"""
-
element = self.driver.find_element(*locator)
-
logger.info(f"查找元素:{locator}--->成功")
-
return element
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。