Python装饰器UI自动化当界面元素迟迟未加载出来时的灵活处理办法
Posted 淡怀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python装饰器UI自动化当界面元素迟迟未加载出来时的灵活处理办法相关的知识,希望对你有一定的参考价值。
一般异常捕获做法(不够灵活,复用性不强)
if __name__ == \'__main__\': # 一般做法(或者再加个循环触发) try: driver.switch_to.alert.accept() # 有可能弹框没出来 会报错 except: time.sleep(5) driver_.switch_to.alert.accept()
加了装饰器的做法(及其灵活,复用性强)
def loop_waiting(seconds=1, times=1): """ 循环等待触发 常用场景(UI自动化):当页面未加载完成时driver直接找元素 可能会报错 等待一段时间后 页面加载完成后再去找 :param seconds: 每次循环等待秒数 :param times: 循环次数 :return: """ def wrapper(func): def inner_wrapper(): for i in range(times): try: func() break except: print(f\'循环等待触发{times}次,每次等待{seconds}秒,当前第{i + 1}次\') time.sleep(seconds) return inner_wrapper return wrapper if __name__ == \'__main__\': # 加了装饰器的做法 @loop_waiting(5, 3) # 循环触发3次,每次等待5秒 def alert_accept(): driver.switch_to.alert.accept() # 有可能弹框没出来 会报错 alert_accept()
以上是关于Python装饰器UI自动化当界面元素迟迟未加载出来时的灵活处理办法的主要内容,如果未能解决你的问题,请参考以下文章