標籤:函數嵌套 for 傳遞 函數 erro bsp max log 調用
[Package] keywords
所有關鍵字封裝
[Class] _waiting.py
等待函數的條件判斷, 替換sleep, 在依次以條件邏輯執行較多用例時可以有效節省執行等待時間, 快速定位問題
_wait_until(self, timeout, error, function, *args)
概述: 直到function(*args)為True時return None, 為False則return error, 逾時時間timeout
參數:
error: 初始化為逾時異常
function: 條件判斷, 返回True or False
return: None or error
1 def _wait_until(self, timeout, error, function, *args):2 error = error.replace(‘<TIMEOUT>‘, self._format_timeout(timeout))3 def wait_func():4 return None if function(*args) else error5 self._wait_until_no_error(timeout, wait_func)
_wait_until_no_error(self, timeout, wait_func, *args)
概述: 直到wait_func(*args)為False時return, 逾時則拋出逾時異常
1 def _wait_until_no_error(self, timeout, wait_func, *args):2 timeout = robot.utils.timestr_to_secs(timeout) if timeout is not None else self._timeout_in_secs3 maxtime = time.time() + timeout4 while True:5 timeout_error = wait_func(*args)6 if not timeout_error: return7 if time.time() > maxtime:8 raise AssertionError(timeout_error)9 time.sleep(0.2)
最終調用的都是_wait_until_no_error(self, timeout, wait_func, *args). 在層層調用中, 使用到的Python文法, 一是函數嵌套, 而是"一切皆為對象", 函數也可做參數傳遞
Python編程_Selenium2Library源碼分析