当前位置:   article > 正文

pywinauto客户端自动化---窗口等待方法

pywinauto.timings.timeouterror

  我们在做web和app的ui自动化过程中,常用到等待机制,那客户端自动化有这个方法吗?python这么强大,肯定是有方法解决的

等待机制

pywinauto等待有两种方法:

方法一:

wait()

wait_for:表示可以选择窗口状态

timeout:超时时间

retry_interval:表示重试间隔

  1. def wait(self, wait_for, timeout=None, retry_interval=None):
  2. """
  3. 等待窗口处于特定的状态
  4. * 'exists' 表示窗口是一个有效的句柄
  5. * 'visible' 表示窗口不隐藏
  6. * 'enabled' 表示该窗口未被禁用
  7. * 'ready' 表示窗口可见并已启用
  8. * 'active' 表示窗口处于活动状态
  9. timeout:表示超时
  10. retry_interval:表示重试间隔
  11. """
  12. check_method_names, timeout, retry_interval = self.__parse_wait_args(wait_for, timeout, retry_interval)
  13. wait_until(timeout, retry_interval,
  14. lambda: self.__check_all_conditions(check_method_names, retry_interval))
  15. # Return the wrapped control
  16. return self.wrapper_object()

wati_not()

其实和上面都是一样的,一种等待处于某种状态,一种等待不处于某种状态

  1. def wait_not(self, wait_for_not, timeout=None, retry_interval=None):
  2. """
  3. Wait for the window to not be in a particular state/states.
  4. :param wait_for_not: The state to wait for the window to not be in. It can be any
  5. of the following states, also you may combine the states by space key.
  6. * 'exists' means that the window is a valid handle
  7. * 'visible' means that the window is not hidden
  8. * 'enabled' means that the window is not disabled
  9. * 'ready' means that the window is visible and enabled
  10. * 'active' means that the window is active
  11. :param timeout: Raise an :func:`pywinauto.timings.TimeoutError` if the window is sill in the
  12. state after this number of seconds.
  13. Default: :py:attr:`pywinauto.timings.Timings.window_find_timeout`.
  14. :param retry_interval: How long to sleep between each retry.
  15. Default: :py:attr:`pywinauto.timings.Timings.window_find_retry`.
  16. An example to wait until the dialog is not ready, enabled or visible: ::
  17. self.Dlg.wait_not("enabled visible ready")
  18. .. seealso::
  19. :func:`WindowSpecification.wait()`
  20. :func:`pywinauto.timings.TimeoutError`
  21. """
  22. check_method_names, timeout, retry_interval = \
  23. self.__parse_wait_args(wait_for_not, timeout, retry_interval)
  24. wait_until(timeout, retry_interval,
  25. lambda: not self.__check_all_conditions(check_method_names, retry_interval))

这里应用场景安静就不举例子了,无非就是判断一些弹出框,或者进入到一种窗口中进行其他的操作,可以通过这个方法进行去等待,减少代码的运行时间

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/121316
推荐阅读
相关标签
  

闽ICP备14008679号