3.51. 检测函数执行是否超时

def wait_for_predicate(self, func, interval=1):
    """    检测predicate函数执行是否超时,默认90s """

    timeout = 90
    before = time.time()
    while True:
        if time.time() - before > timeout:
            raise Exception("Predicate '%s' did not happen within timeout" % predicate)
        result = None
        try:
            result = func()
        except Exception as e:
            logging.warn(e)
        if result:
            return result
        time.sleep(interval)