Pywinauto - Как ждать изменения определенного заголовка окна среди окон с одинаковыми атрибутами окон - PullRequest
0 голосов
/ 29 ноября 2018

В приложении я создаю несколько экземпляров одинаковой формы (все атрибуты windows, кроме handle) одинаковы) и работаю с ними независимо.Во время формы сеанса меняет собственный заголовок в зависимости от контекста, мне нужно дождаться смены заголовка после определенных операций в форме.

Следующий код, не ждите и получите окно сразу же перед изменением заголовка:

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

Итак, какое лучшее решение для этого?

PS некоторые формы, которые мне нужны для ускорения выполнения, это важно

Конечно, я могу использовать следующий код:

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)

Это лучшее решение или, возможно, я пропустил что-то еще?

1 Ответ

0 голосов
/ 01 декабря 2018

Да, функция timings.wait_until(...) достаточно хороша для этой цели.Методы .wait() и .wait_not() ограничены только спецификацией окна.wait_until является общим.

Также критерий поиска found_index=i может быть полезен в спецификации .window(...)/.child_window(...).

...