Оптимизация Pywinauto

У меня есть скрипт, который использует PyWinAuto для некоторой автоматизации пользовательского интерфейса, и он работает, но такие действия, как переключение флажков, поиск текстового поля и одна из моих функций, использующая print_control_identifiers, выполняются медленно (или медленнее, чем человек, делающий то же самое) .

Насколько я понимаю, как это работает, это связано с рекурсивным поиском в элементах управления Windows. Я пытаюсь ограничить глубину, на которую мне нужно перейти при вызове print_control_identifiers, я думаю, что моя главная проблема - это поиск «наилучшего совпадения», который происходит при выполнении действия над элементом. В настоящее время я пытаюсь использовать предложенные идентификаторы, чтобы ускорить это.

Любые советы по ускорению выполнения?


person Robertabt    schedule 23.01.2019    source источник


Ответы (1)


child_window(..., control_type="...") выполняет поиск быстрее, поскольку предварительная фильтрация по control_type не требует межпроцессного взаимодействия, как class_name.

Алгоритм best_match в целом можно улучшить (подозреваю, что он имеет сложность N^3). Эта работа еще не начата, я был бы рад обсудить любую помощь.

person Vasily Ryabov    schedule 23.01.2019
comment
Мне было бы интересно узнать, изменится ли это, поиск по control_type помог, как и минимизация количества поисков, а также переключение на менее заполненное представление сетки. Если у меня будет время, я могу попробовать и посмотреть, как оптимизировать алгоритм, но это вполне может быть выше моих сил. - person Robertabt; 26.02.2019
comment
Без проблем. У нас есть планы погрузиться в него в любом случае. - person Vasily Ryabov; 27.02.2019