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

 

這里應用場景安靜就不舉例子了,無非就是判斷一些彈出框,或者進入到一種窗口中進行其他的操作,可以通過這個方法進行去等待,減少代碼的運行時間

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM