咱们在作web和app的ui自动化过程当中,经常使用到等待机制,那客户端自动化有这个方法吗?python这么强大,确定是有方法解决的python
等待机制
pywinauto等待有两种方法:web
方法一:app
wait()ui
wait_for:表示能够选择窗口状态this
timeout:超时时间spa
retry_interval:表示重试间隔code
def wait(self, wait_for, timeout=None, retry_interval=None): """ 等待窗口处于特定的状态 * 'exists' 表示窗口是一个有效的句柄 * 'visible' 表示窗口不隐藏 * 'enabled' 表示该窗口未被禁用 * 'ready' 表示窗口可见并已启用 * 'active' 表示窗口处于活动状态 timeout:表示超时 retry_interval:表示重试间隔 """ check_method_names, timeout, retry_interval = self.__parse_wait_args(wait_for, timeout, retry_interval) wait_until(timeout, retry_interval, lambda: self.__check_all_conditions(check_method_names, retry_interval)) # Return the wrapped control return self.wrapper_object()
wati_not()blog
其实和上面都是同样的,一种等待处于某种状态,一种等待不处于某种状态ci
def wait_not(self, wait_for_not, timeout=None, retry_interval=None): """ Wait for the window to not be in a particular state/states. :param wait_for_not: The state to wait for the window to not be in. It can be any of the following states, also you may combine the states by space key. * 'exists' means that the window is a valid handle * 'visible' means that the window is not hidden * 'enabled' means that the window is not disabled * 'ready' means that the window is visible and enabled * 'active' means that the window is active :param timeout: Raise an :func:`pywinauto.timings.TimeoutError` if the window is sill in the state after this number of seconds. Default: :py:attr:`pywinauto.timings.Timings.window_find_timeout`. :param retry_interval: How long to sleep between each retry. Default: :py:attr:`pywinauto.timings.Timings.window_find_retry`. An example to wait until the dialog is not ready, enabled or visible: :: self.Dlg.wait_not("enabled visible ready") .. seealso:: :func:`WindowSpecification.wait()` :func:`pywinauto.timings.TimeoutError` """ check_method_names, timeout, retry_interval = \ self.__parse_wait_args(wait_for_not, timeout, retry_interval) wait_until(timeout, retry_interval, lambda: not self.__check_all_conditions(check_method_names, retry_interval))
这里应用场景安静就不举例子了,无非就是判断一些弹出框,或者进入到一种窗口中进行其余的操做,能够经过这个方法进行去等待,减小代码的运行时间it