首页 > 编程语言 > 详细

【Python】【装饰器】【UI自动化】当界面元素迟迟未加载出来时的灵活处理办法

时间:2021-06-09 18:14:53      阅读:18      评论:0      收藏:0      [点我收藏+]

一般异常捕获做法(不够灵活,复用性不强)

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自动化】当界面元素迟迟未加载出来时的灵活处理办法

原文:https://www.cnblogs.com/danhuai/p/14866276.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!