Pywinauto - 如何等待具有相同窗口属性的窗口之间更改的特定窗口标题



在应用程序中,我创建了相同表单的一些实例(除句柄之外的所有窗口属性都相同)并独立使用它们。在会话期间,表单会根据上下文更改自己的标题,我需要等待在表单中的某些操作后更改标题。

下一个代码,不要等待并在标题更改之前立即获取窗口:

w = app.window(handle = handle, title_re = '...', class_name='...')
w.wait('ready', timeout = 2)

由于功能find_elements()的工作特点:

if handle is not None:
return [backend_obj.element_info_class(handle), ]

那么,最好的解决方案是什么?

附言我需要一些表格来加快执行速度,这很重要

当然,我可以使用下一个代码:

def check_state():
windows = app.windows(title = '...', class_name='...')
for w in windows:
if handle == w.handle:
return(True)
return(False)
pywinauto.timings.wait_until(5, 0.5, check_state, True)

这是最好的解决方案还是我跳过了其他东西?

是的,函数timings.wait_until(...)足以满足此目的。方法.wait().wait_not()仅限于窗口规范。wait_until是通用的。

此外,搜索条件found_index=i.window(...)/.child_window(...)规范中也很有用。

最新更新