You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ORPA-pyOpenRPA/Wiki/05.2.-Theory-&-practice.-De...

11 KiB

Here you can find the docs and examples of the OpenRPA desktop app access.

Definitions

UIO - UI Object (class of pywinauto UI object) [pywinauto.base_wrapper]
UIOSelector - List of dict (key attributes)
PWA - PyWinAuto
PWASpecification - List of dict (key attributes in pywinauto.find_window notation)
UIOTree - Recursive Dict of Dict ... (UI Parent -> Child hierarchy)
UIOInfo - Dict of UIO attributes
UIOActivity - Activity of the UIO (UI object) from the Pywinauto module
UIOEI - UI Object info object

UIOSelector structure & examples

Desciption
[
    {
        "index" - index of the UI element in parent child list,
        "depth_start" - глубина, с которой начинается поиск (по умолчанию 1),
        "depth_end" - глубина, до которой ведется поиск (по умолчанию 1),
        "class_name" - наименование класса, который требуется искать,
        "title" - наименование заголовка,
        "rich_text" - наименование rich_text,
        "backend": <"win32"||"uia", only for the 1-st list element> - if not specified, use mDefaultPywinautoBackend
        "is_enabled": - признак, что элемент доступен для выполнения действий,
        "is_visible": - признак, что элемент отображается на экране,
    },
    { ... }
]

Example

[{"title":"Настройка периода","class_name":"V8NewLocalFrameBaseWnd","backend":"uia"},{"ctrl_index":0},{"ctrl_index":0},{"ctrl_index":5}]

The UIDesktop module (OpenRPA/Robot/UIDesktop.py)

The UIDesktop is extension of the pywinauto module which provide access to the desktop apps by the win32 and ui automation dll frameworks (big thx to the Microsoft :) ).

Functions

Naming convention: <InArgument>_<ActivityName>_<OutArgument - if exist>

List

Description

UIOSelector_Get_UIOList (inSpecificationList,inElement=None,inFlagRaiseException=True)


Get list of the UIO


inSpecificationList - UIOSelector - List of dict (key attributes)
inElement - UIO pywinauto Входной элемент - показатель, что не требуется выполнять коннект к процессу
inFlagRaiseException - Флаг True - выкинуть ошибку в случае обнаружении пустого списка


UIOSelector_Get_UIO (inSpecificationList,inElement=None,inFlagRaiseException=True)


Get first (if more than one UIO are applied) UIO (UI Object)


inSpecificationList - UIOSelector
inElement - Входной элемент - показатель, что не требуется выполнять коннект к процессу
inFlagRaiseException - Флаг True - выкинуть ошибку в случае обнаружении пустого списка


UIOSelector_Exist_Bool (inSpecificationList)


Check if UIO exist (Identified by the UIOSelector)


inSpecificationList - UIOSelector


UIOSelectorsSecs_WaitAppear_List (inSpecificationListList,inWaitSecs,inFlagWaitAllInMoment=False)


Wait for UIO is appear (at least one of them or all at the same time). return: [0,1,2] - index of UIOSpecification, which is appear


inSpecificationListList - !List! of the UIOSelector
inWaitSecs - Время ожидания объекта в секундах
inFlagWaitAllInMoment - доп. условие - ожидать появление всех UIOSelector одновременно


UIOSelectorsSecs_WaitDisappear_List (inSpecificationListList,inWaitSecs,inFlagWaitAllInMoment=False)


Wait for UIO is Disappear (at least one of them or all at the same time). return: [0,1,2] - index of UIOSpecification, which is Disappear


inSpecificationListList - !List! of the UIOSelector
inWaitSecs - Время ожидания пропажи объекта в секундах
inFlagWaitAllInMoment - доп. условие - ожидать пропажу всех UIOSelector одновременно


UIOSelectorSecs_WaitAppear_Bool (inSpecificationList,inWaitSecs)


Wait for UIO is appear (at least one of them or all at the same time). return: Bool - True - UIO is appear.


inSpecificationList - UIOSelector
inWaitSecs - Время ожидания объекта в секундах


UIOSelectorSecs_WaitDisappear_Bool (inSpecificationList,inWaitSecs)


Wait for UIO is disappear (at least one of them or all at the same time) . return: Bool - True - UIO is Disappear.


inSpecificationList - UIOSelector
inWaitSecs - Время ожидания пропажи объекта в секундах


UIOSelector_Get_BitnessInt (inSpecificationList)


Get process bitness (32 or 64). return None (if Process not found), int 32, or int 64


inSpecificationList - UIOSelector


UIOSelector_SearchChildByMouse_UIO(inElementSpecification)


Run the search UIO by mouse hover event. result = pywinauto element wrapper instance or None


inElementSpecification - UIOSelector (see description on the top of the document)


UIOSelector_SearchChildByMouse_UIOTree(inElementSpecification)


Run the search UIO by mouse hover event. result = pywinauto element wrapper instance or None


inElementSpecification - UIOSelector


UIOSelector_Get_UIOInfoList (inSpecificationList,inElement=None)


Получить список информационных объектов, который удовлетворяет условиям


inSpecificationList - UIOSelector


UIOSelector_IsExist_Bool (inSpecificationList)


Check is the UIO/UIO's by the UIOSelector exist


inSpecificationList - UIOSelector


UIOSelector_WaitAppear_Dict(inSpecificationList,inTimeout=60)


Wait for the UIO by the UIOSelector appear


inSpecificationList - UIOSelector


UIOSelector_TryRestore_Dict(inSpecificationList)


Try to restore (maximize) window, if it's was minimized. (особенность uia backend - он не может прицепиться к окну, если оно свернуто)


inSpecificationList - UIOSelector


UIOSelector_Get_UIOActivityList (inControlSpecificationArray)


Get the list of the UI object activities


inControlSpecificationArray - UIOSelector


UIOSelectorUIOActivity_Run_Dict(inControlSpecificationArray,inActionName,inArgumentList=\[\],inkwArgumentObject={})


Run the activity in UIO (UI Object)


inControlSpecificationArray - UIOSelector
inActionName - UIOActivity (name) from Pywinauto


UIOSelector_Get_UIOInfo(inControlSpecificationArray)


Get the UIO dict of the attributes


inControlSpecificationArray - UIOSelector


UIOSelector_GetChildList_UIOList(inControlSpecificationArray=\[\],inBackend=mDefaultPywinautoBackend)


Get list of child UIO's by Parent UIOSelector


inControlSpecificationArray - UIOSelector


UIOSelector_SearchUIONormalize_UIOSelector (inControlSpecificationArray)


Подготовить массив для обращения к поиску элементов


inControlSpecificationArray - UIOSelector


UIOSelector_SearchProcessNormalize_UIOSelector (inControlSpecificationArray)


Подготовить массив для обращения к поиску процесса (отличается от поиска элемента, т.к. данная функция нужна для нормализации спецификации для подключения к процессу с окнами)


inControlSpecificationArray - UIOSelector


UIOSelector_FocusHighlight(inSpecificationArray)


Set focus and highlight (draw outline) the element (in app) by the UIO selector.


inSpecificationArray - UIOSelector


UIOSelector_Highlight(inSpecificationArray)


Highlight (draw outline) the element (in app) by the UIO selector.


inSpecificationArray - UIOSelector