Невозможно получить доступ к элементам строки меню через pywinauto

Я автоматизирую следующую программу через Python: (Surfer)

http://www.goldensoftware.com/products/surfer

Некоторыми его частями я не могу управлять с помощью win32com.client (программные библиотеки не поддерживают его). То, что мне нужно для работы, может быть выполнено с помощью строки меню программ. Мне нужно сделать всего 5 кликов. В качестве альтернативы я пытался использовать pywinauto (моя первая попытка с этим). Но на этот раз я не могу получить элементы строки меню. Я пробовал анализировать меню через swapy (https://github.com/pywinauto/SWAPY), но Поле MenuItems отображается пустым (как пустой список []).

вот некоторый тестовый код:

from pywinauto.application import Application

app = Application(backend="uia").connect(process=2984)  # tried "win32" as backend also

srf = app.window(process=2984)

srf.menu_select("Help")

Я получаю сообщение об ошибке:

"RuntimeError: There is no menu."

Меню, к которым я пытаюсь получить доступ, находятся внутри:

  • Редактировать
  • Договариваться
  • Геообработка

Любая помощь будет оценена по достоинству.


person shafuq    schedule 25.09.2018    source источник
comment
Это могло быть связано с проблемой № 413, но я еще не смотрел .   -  person Vasily Ryabov    schedule 26.09.2018
comment
Спасибо, Василий. Я прочитал и попытался понять указанную вами проблему. Это выше моих навыков, но я снова ценю ваш интерес.   -  person shafuq    schedule 26.09.2018


Ответы (1)


Наконец-то мне удалось получить управление меню через pywinauto:

app_dialog.child_window(title="Menu Bar").set_focus()

Отсюда возник вопрос управления клавиатурой с помощью модуля SendKeys ().

Это обходной путь, но он выполняет свою работу.

person shafuq    schedule 28.09.2018