pywinauto wait() 和 wait_not() 使用详解
作者:水悠悠予安
时间:2025-06-30
浏览:0
前言pywinauto提供了两种等待方法:wait():等待窗口达到指定状态wait_not():等待窗口不处于某种状态wait()等待wait()方法的相关源码如下:defwait(self,wait_for,timeout=None,retry_interval=None):"""等待窗口达到指定状态。:paramwait_for:等待窗口达到的状态。可以是以下状态之一,也可以使用空格键组合多个状态:*'exists':表示窗口存在,是一个有效的句柄

前言
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`
"""
wait_for 参数的可选值包括:
- 'exists':表示窗口存在,是一个有效的句柄
- 'visible':表示窗口可见
- 'enabled':表示窗口未被禁用
- 'ready':表示窗口可见且已启用
- 'active':表示窗口处于活动状态
timeout 参数表示超时时间,retry_interval 参数表示重试间隔。
使用示例:
from pywinauto import Applicationapp = 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() 方法刚好相反,用于等待窗口不处于某种状态。
作者最新文章
灵活计算器
2026-09-16 17:45
苹果折叠屏iPhone预计售价是多少
2026-09-14 13:44
OpenAI GPT-6 Astra 自主通关《传送门》:技术原理与实验成本解析
2026-09-08 19:08
苹果与铠侠签署NAND长期供应协议:3-5年长约与不设价格上限背后的供应链战略
2026-09-08 16:58
PDF转PPT操作指南:在线、本地与批量转换及结果核对
2026-09-04 15:04
上一篇:
蜻蜓FM换台方法及步骤详解
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































