0
0 комментариев

Доброго времени суток. Осваиваю python и библиотеку для автоматизации pywinauto.
Пробую автоматизировать действия в одном приложении, использующем WPF.

Скриншот меню

Проблема в том, что не удается выбрать дочерние подпункты меню.
Собственно код:

from pywinauto.application import Application
from os import getenv
 
skif_path = getenv('localappdata') + '\ОАО Финтех\СКИФ-Бюджетный процесс\SkifBP.exe' + ' /SERVER=(localdb)\Fintech /DATABASE=Skif_BP /AUTOLOGON /SSPI=1'
app = Application(backend='uia').start(r''+skif_path)
 
main_window = app.window(title='СКИФ-Бюджетный процесс')
main_window.wait('ready', timeout=25)
 
top_menu = main_window.child_window(auto_id="TopMenu")
menu_service = top_menu.child_window(title="Сервис", control_type="MenuItem")
#menu_service.select() - срабатывает нормально
item_backup = menu_service.child_window(title="Резервное копирование...", control_type="MenuItem")
item_backup.select()

«Верхние» пункты отлично выбираются, но при попытке обращения к дочернему (например «Резервное копирование…») получаю ошибку, что не удается найти нужный элемент:

pywinauto.findwindows.ElementNotFoundError: {‘title’: ‘Резервное
копирование…’, ‘control_type’: ‘MenuItem’, ‘top_level_only’: False,
‘parent’: ,
‘backend’: ‘uia’}

print_control_identifiers выдает корректное дерево элементов (описания элементов я и копировал из вывода)

Подскажите, как решить данную проблему.

Изменен статус публикации
Добавить комментарий