timings 用户模块类
所有pywinauto的全局定时设置
exception pywinauto.timings.TimeoutError
此模块有一个对象,应用于所有时序调整:
- timings.Timings
有几个预定义的设置:
timings.Timings.fast()
timings.Timings.defaults()
timings.Timings.slow()
以下是可以调整的各个时序设置:
时序设置 | 默认值 |
---|---|
window_find_timeout | 5 |
window_find_retry | 0.09 |
app_start_timeout | 10 |
app_start_retry | 0.09 |
app_connect_timeout | 5 |
app_connect_retry | 0.1 |
cpu_usage_interval | 0.5 |
cpu_usage_wait_timeout | 20 |
exists_timeout | 0.5 |
exists_retry | 0.3 |
after_click_wait | 0.09 |
after_clickinput_wait | 0.09 |
after_menu_wait | 0.1 |
after_sendkeys_key_wait | 0.01 |
after_button_click_wait | 0 |
before_closeclick_wait | 0.1 |
closeclick_retry | 0.05 |
closeclick_dialog_close_wait | 2 |
after_closeclick_wait | 0.2 |
after_windowclose_timeout | 2 |
after_windowclose_retry | 0.5 |
after_setfocus_wait | 0.06 |
setfocus_timeout | 2 |
setfocus_retry | 0.1 |
after_setcursorpos_wait | 0.01 |
sendmessagetimeout_timeout | 0.01 |
after_tabselect_wait | 0.05 |
after_listviewselect_wait | 0.01 |
after_listviewcheck_wait | 0.001 |
listviewitemcontrol_timeout | 1.5 |
after_treeviewselect_wait | 0.1 |
after_toobarpressbutton_wait | 0.01 |
after_updownchange_wait | 0.1 |
after_movewindow_wait | 0 |
after_buttoncheck_wait | 0 |
after_comboboxselect_wait | 0.001 |
after_listboxselect_wait | 0 |
after_listboxfocuschange_wait | 0 |
after_editsetedittext_wait | 0 |
after_editselect_wait | 0.02 |
drag_n_drop_move_mouse_wait | 0.1 |
before_drag_wait | 0.2 |
before_drop_wait | 0.1 |
after_drag_n_drop_wait | 0.1 |
scroll_step_wait | 0.1 |
timings.TimeConfig
class pywinauto.timings.TimeConfig
时序值的集中存储和操作
timings.TimeConfig.Defaults
pywinauto.timings.TimeConfig.Defaults(*args, **kwargs)
timings.TimeConfig.Fast
pywinauto.timings.TimeConfig.Fast(*args, **kwargs)
timings.TimeConfig.Slow
pywinauto.timings.TimeConfig.Slow(*args, **kwargs)
timings.TimeConfig.defaults
pywinauto.timings.TimeConfig.defaults()
将所有计时设置为默认时间
timings.TimeConfig.fast
pywinauto.timings.TimeConfig.fast()
设置快速时序值
目前,这会通过以下方式更改时间:超时 = 1 秒等待 = 0 秒重试 = .001 秒 (最小值!)
(如果现有时间更快,则保留现有时间)
timings.TimeConfig.slow
pywinauto.timings.TimeConfig.slow()
设置慢时序值
目前,这会通过以下方式更改时间: 超时 = 默认超时 * 10 次等待 = 默认等待 * 3 次重试 = 默认重试 * 3
(如果现有时间较慢,请保留现有时间)
timings.always_wait_until
pywinauto.timings.always_wait_until(timeout, retry_interval, value=True, op=<built-in function eq>)
每次为修饰函数/方法调用 wait_until(…) 的装饰器
timings.always_wait_until_passes
pywinauto.timings.always_wait_until_passes(timeout, retry_interval, exceptions=<class 'Exception'>)
每次为修饰函数/方法调用 wait_until_passes(…) 的装饰器
timings.timestamp
pywinauto.timings.timestamp()
获取精确的时间戳
timings.wait_until
pywinauto.timings.wait_until(timeout, retry_interval, func, value=True, op=<built-in function eq>, *args, **kwargs)
等到
op(function(*args, **kwargs), value)
为 True 或超时到期
参数 | 说明 |
---|---|
timeout | 函数将尝试该函数的时间 |
retry_interval | 重试之间要等待多长时间 |
func | 将要执行的函数 |
value | 要与之比较的值(默认为 True) |
op | 比较函数(默认为相等) |
*args | 调用时要传递给 func 的可选参数 |
**kwargs | 可选关键字参数,在调用时传递给 func |
返回函数的返回值 如果操作超时,则函数的返回值位于引发的异常的“function_value”属性中。
例如:
try:
# wait a maximum of 10.5 seconds for the
# the objects item_count() method to return 10
# in increments of .5 of a second
wait_until(10.5, .5, self.item_count, 10)
except TimeoutError as e:
print("timed out")
timings.wait_until_passes
pywinauto.timings.wait_until_passes(timeout, retry_interval, func, exceptions=<class 'Exception'>, *args, **kwargs)
等到
func(*args, **kwargs)
不引发异常之一
参数 | 说明 |
---|---|
timeout | 函数将尝试该函数的时间 |
retry_interval | 重试之间要等待多长时间 |
func | 将要执行的函数 |
exceptions | 要测试的异常异常列表(默认值:Exception) |
*args | 调用时要传递给 func 的可选参数 |
**kwargs | 可选关键字参数,在调用时传递给 func |
返回函数的返回值 如果操作超时,则引发的原始异常位于引发的异常的“original_exception”属性中。
例如:
try:
# wait a maximum of 10.5 seconds for the
# window to be found in increments of .5 of a second.
# P.int a message and re-raise the original exception if never found.
wait_until_passes(10.5, .5, self.Exists, (ElementNotFoundError))
except TimeoutError as e:
print("timed out")
raise e.