商城首页欢迎来到中国正版软件门户

您的位置:首页 >pywinauto wait() 和 wait_not() 使用详解

pywinauto wait() 和 wait_not() 使用详解

  发布于2025-06-30 阅读(0)

扫一扫,手机访问

windows 桌面GUI自动化- 13.pywinauto 等待方法wait() 和 wait_not()

前言

pywinauto 提供了两种等待方法:

  • wait():等待窗口达到指定状态
  • wait_not():等待窗口不处于某种状态

wait() 等待

wait() 方法的相关源码如下:

def wait(self, wait_for, timeout=None, retry_interval=None):
    """
    等待窗口达到指定状态。
:param wait_for: 等待窗口达到的状态。可以是以下状态之一,也可以使用空格键组合多个状态:
    * 'exists':表示窗口存在,是一个有效的句柄
    * 'visible':表示窗口可见
    * 'enabled':表示窗口未被禁用
    * 'ready':表示窗口可见且已启用
    * 'active':表示窗口处于活动状态
:param timeout: 如果窗口在指定秒数后仍未达到适当状态,则引发 :func:`pywinauto.timings.TimeoutError` 异常。
    默认值为 :py:attr:`pywinauto.timings.Timings.window_find_timeout`。
:param retry_interval: 每次重试之间的睡眠时间。
    默认值为 :py:attr:`pywinauto.timings.Timings.window_find_retry`。

例如,等待对话框存在、已准备好、已启用且可见:
::

    self.Dlg.wait("exists enabled visible ready")

.. seealso::
    :func:`WindowSpecification.wait_not()`
    :func:`pywinauto.timings.TimeoutError`
"""</code></pre><p><code>wait_for</code> 参数的可选值包括:</p><ul><li>'exists':表示窗口存在,是一个有效的句柄</li><li>'visible':表示窗口可见</li><li>'enabled':表示窗口未被禁用</li><li>'ready':表示窗口可见且已启用</li><li>'active':表示窗口处于活动状态</li></ul><p><code>timeout</code> 参数表示超时时间,<code>retry_interval</code> 参数表示重试间隔。</p><p>使用示例:</p><pre><code class="language-javascript">from pywinauto import Application

app = Application('uia').start("notepad.exe") win = app.window(title_re="无标题 - 记事本")

输入内容

win.child_window(title="文本编辑器").set_text("hello world")

文件-另存为

win.menu_select('文件(F) -> 另存为(A)...')

等待另存为窗口出现

win.child_window(title="另存为", control_type="Window").wait('ready', timeout=5)

wait_not() 等待

wait_not() 方法与 wait() 方法刚好相反,用于等待窗口不处于某种状态。

本文转载于:https://cloud.tencent.com/developer/article/2327967 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注