zoukankan      html  css  js  c++  java
  • pywinauto客户端自动化---窗口等待方法

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

    等待机制

    pywinauto等待有两种方法:

    方法一:

    wait()

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

    timeout:超时时间

    retry_interval:表示重试间隔

     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()

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

        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))

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

  • 相关阅读:
    SPOJ-BRCKTS (括号序列,线段树)
    bzoj 2223 [Coci 2009]PATULJCI
    bzoj 1049 [HAOI2006]数字序列
    bzoj2091 [Poi2010]The Minima Game
    bzoj 1016 [JSOI2008]最小生成树计数
    bzoj5105 晨跑 数论lcm
    bzoj 1211 [HNOI2004]树的计数
    bzoj 1430 小猴打架 prufer 性质
    Swing界面组件的通用属性
    数字调节控件JSpinner的使用
  • 原文地址:https://www.cnblogs.com/qican/p/13226098.html
Copyright © 2011-2022 走看看