嗨,我正在使用 Python pywinauto,我正在尝试验证 AUT 中的 UI 元素,但是在 5 次执行中,有 3 次失败,并显示“pywinauto.timings.TimeoutError: timed out”,它会停止执行,并且它的执行情况不同每次它都会改变它在不同代码行中的出现位置。
这是错误日志示例:
Traceback (most recent call last):
dlg_spec.menu_select("Help->About")
File "D:\FromSamina\TCX3_POC\venv\lib\site-packages\pywinauto\controls\uiawrapper.py",
line 723, in menu_select
menu.item_by_path(path, exact).select()
File "D:\FromSamina\TCX3_POC\venv\lib\site-packages\pywinauto\controls\uia_controls.py",
line 1060, in item_by_path
lambda: len(self.top_level_parent().descendants(control_type="Menu")) > 0)
File "D:\FromSamina\TCX3_POC\venv\lib\site-packages\pywinauto\timings.py",
line 375, in wait_until
raise err **pywinauto.timings.TimeoutError: timed out
您需要首先尝试
dlg_spec.wait('ready', timeout=10)
(对于慢速应用程序来说,大超时更稳定),然后您可能需要app.wait_cpu_usage_lower()
来处理应用程序端窗口的延迟初始化(窗口可能会出现,但尚未初始化菜单)。
pywinauto.timings.TimeoutError: timed out
的修复方法是:
from pywinauto import timings
timings.Timings.slow()