Получить атрибуты из элемента пользовательского интерфейса с помощью Microsoft UIAutomation и Python - PullRequest
0 голосов
/ 24 февраля 2020

Цель: Я хочу получить следующие атрибуты элемента пользовательского интерфейса: имя, класс, тип элемента управления и имя родителя. Элемент может принадлежать Outlook или веб-приложению, которое открывается в обозревателе Inte rnet.

Python интерпретатор: 3.7

Python библиотека : Comtypes

Проведенное исследование:

OUTLOOK: Чтобы получить атрибуты определенного элемента в Microsoft Outlook, я используя комтипы для создания объекта UIautomationCore.dll. Я мог бы получить имя и класс, основываясь на точке определенного элемента, но я не могу найти способ получить тип элемента управления и, с другой стороны, имя родительского элемента, имеющего эту точку. Я обнаружил в Microsoft UI Automation, что должен использовать TreeWalker для получения информации о родительском элементе. Тем не менее, я не знаю, как реализовать в Python.

WEB-приложение (Inte rnet Explorer): Я использую ту же библиотеку, и я могу получить элементы, которые находится в браузере Inte rnet Explorer. Тем не менее, когда я не могу получить эти атрибуты одной кнопки, которые находятся в содержимом веб-приложения (тела).

Вопрос: Как получить тип элемента управления и имя родительского элемента в Outlook с помощью автоматизации пользовательского интерфейса Microsoft? и Как получить эти атрибуты, когда я работаю с Inte rnet Explorer?.

Мой текущий код:

import comtypes
from comtypes.client import *

comtypes.client.GetModule('UIAutomationCore.dll')
from comtypes.gen.UIAutomationClient import *

# get IUIAutomation interface
uia = CreateObject(CUIAutomation._reg_clsid_, interface=IUIAutomation)


# import tagPOINT from wintypes
from ctypes.wintypes import tagPOINT
point = tagPOINT(1833, 95)
element = uia.ElementFromPoint(point)

walker = ViewWalker
parentElement = walker.GetParent(element)
name=element.currentName
parentName = parentElement.currentName

print("elementName:", name)
print("parentElementName: ", parentName)

Избранное: Может ли кто-нибудь дать некоторые рекомендации о том, как реализовать интерфейс IUIAutomationElement COM с Python ?. Любая ссылка или книга может быть очень полезна для понимания.

...