Pywinauto - 如何等待特定 window 标题在 windows 中更改,具有相同的 windows 属性

Pywinauto - How to wait on specific window title changed among windows with equal windows attributes

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

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

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

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

P.S。有些表格我需要加快执行速度,这很重要

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

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() 仅限于 window 规范。 wait_until 是通用的。

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