WedX - журнал о программировании и компьютерных науках

меню ленты pywinauto не возвращает идентификаторы элементов управления

Я пытаюсь автоматизировать ряд задач, которые мне приходится выполнять с данным программным обеспечением. Мне удалось запустить его с помощью элементов управления с клавиатуры, но для увеличения сложности сценария мне нужно получить доступ к ленточному меню.

Пока мой код выглядит следующим образом:

windows = pwa.Desktop(backend="win32").windows()
running_windows = [window.window_text() for window in windows]

midas_title = ""
target_title = "Civil"

for window in running_windows:
    if target_title in window:
        midas_title += window
    else:
        pass

app = pwa.Application().connect(title=midas_title)
app[midas_title].set_focus()

app.MidasGenMainFrmClass['MIDAS/Civil'].print_control_identifiers()
app.MidasGenMainFrmClass['BCGPRibbonBar:40000000:8:10003:10'].print_control_identifiers()

Судя по верхней/левой и нижней/правой координатам BCGPRibbonBar:40000000:8:10003:10, похоже, это меню, к которому я хочу получить доступ, чтобы я мог нажать кнопку «Результаты» на этой ленте (моя конечная цель), но когда я делаю print_control_identifiers() на что вывод, который я получаю, таков:

BCGPRibbonBar:40000000:8:10003:10 - 'MIDAS/Civil'    (L0, T0, R1920, B174)
['MIDAS/CivilBCGPRibbonBar:40000000:8:10003:10', 'BCGPRibbonBar:40000000:8:10003:10', 'MIDAS/Civil']
child_window(title="MIDAS/Civil", class_name="BCGPRibbonBar:40000000:8:10003:10")

Я очень новичок в этом, но кажется, что у ленты нет детей?

Похоже, я слишком новичок, чтобы вставлять изображения, но дайте здесь ссылку на то, как выглядит меню ленты< /а>

И, наконец, ссылка на изображение инспектора меню "Результаты", где я хотел бы щелкнуть< /а>

Надеюсь, этой информации достаточно, но, пожалуйста, дайте мне знать, если чего-то не хватает.

Если кто-нибудь знает, что я могу делать неправильно, это было бы очень полезно.


Ответы:


1

Используйте backend="uia" вместо backend="win32". Элементы управления ленты видны только серверной части UIA. Application(backend="uia") тоже обязательно.

18.09.2020
  • Когда я использую Application(backend="uia"), я получаю следующую ошибку pywinauto.timings.TimeoutError и pywinauto.findbestmatch.MatchError: Could not find 'Civil 2020 - [path_to_file_location ' in 'dict_keys([])' С backend="win32" приложение работает успешно. 21.09.2020
  • Вам также нужно это для Application(backend="uia").connect(...). Пожалуйста, отредактируйте свой вопрос с новыми деталями ошибки. Непонятно, какая именно линия вышла из строя. 22.09.2020
  • Новые материалы

    Как создать диаграмму градиентной кисти с помощью D3.js
    Резюме: Из этого туториала Вы узнаете, как добавить градиентную кисть к диаграмме с областями в D3.js. Мы добавим градиент к значениям SVG и применим градиент в качестве заливки к диаграмме с..

    Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
    Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

    Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
    В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..


    Для любых предложений по сайту: [email protected]