wiki: 2/3 UIDesktop переведено!

dev-linux
Ivan Maslov 3 years ago
parent 66992ebab8
commit 7d76920a36

@ -867,10 +867,24 @@ def UIOSelector_SearchChildByMouse_UIOTree(inUIOSelector):
lItemInfo = lPIPEResponseDict["Result"] lItemInfo = lPIPEResponseDict["Result"]
#Вернуть результат #Вернуть результат
return lItemInfo return lItemInfo
####################################################################################################
#inElement- UIO (UI Object)
#old name - PywinautoExtElementCtrlIndexGet #old name - PywinautoExtElementCtrlIndexGet
def UIO_GetCtrlIndex_Int(inElement): def UIO_GetCtrlIndex_Int(inElement):
"""
Получить индекс UIO объекта inElement в списке родительского UIO объекта.
.. code-block:: python
# UIDesktop: Взаимодействие с UI объектами приложений
from pyOpenRPA.Robot import UIDesktop
# 1С: UIO Селектор выбора базы
lDemoBaseUIOSelector = [{"title":"Запуск 1С:Предприятия","class_name":"V8TopLevelFrameTaxiStarter","backend":"uia"}]
lUIO = UIDesktop.UIOSelector_Get_UIO(lDemoBaseUIOSelector) # Получить UIO объект по UIO селектору.
lUIOIndexInt = UIDesktop.UIO_GetCtrlIndex_Int(lUIO) # Получить индекс UIO объекта в списке у родительского UIO объекта.
:param inElement: UIO объект, для которого требуется определить индекс в списке родительского UIO объекта.
:type inElement: list, обязательный
:return: int, индекс UIO объекта в списке родительского UIO объекта
"""
lResult = None lResult = None
#Выполнить алгоритм, если есть Element #Выполнить алгоритм, если есть Element
if inElement is not None: if inElement is not None:
@ -899,12 +913,27 @@ def UIO_GetCtrlIndex_Int(inElement):
#Вернуть результат #Вернуть результат
return lResult return lResult
#################################################################################################### #old: - PywinautoExtElementsGetInfo
# Get the UIO Info list for the selected criteria
#!!!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!!
#inSpecificationList - UIOSelector
#old name - PywinautoExtElementsGetInfo
def UIOSelector_Get_UIOInfoList (inUIOSelector, inElement=None): def UIOSelector_Get_UIOInfoList (inUIOSelector, inElement=None):
"""
Техническая функция: Получить список параметров последних уровней UIO селектора по UIO объектам, которые удовлетворяют входящим inUIOSelector, поиск по которым будет производится от уровня inElement.
!ВНИМАНИЕ! ДАННАЯ ФУНКЦИОНАЛЬНОСТЬ В АВТОМАТИЧЕСКОМ РЕЖИМЕ ПОДДЕРЖИВАЕТ ВСЕ РАЗРЯДНОСТИ ПРИЛОЖЕНИЙ (32|64), КОТОРЫЕ ЗАПУЩЕНЫ В СЕСИИ. PYTHON x64 ИМЕЕТ ВОЗМОЖНОСТЬ ВЗЗАИМОДЕЙСТВИЯ С x32 UIO ОБЪЕКТАМИ, НО МЫ РЕКОМЕНДУЕМ ДОПОЛНИТЕЛЬНО ИСПОЛЬЗОВАТЬ ИНТЕРПРЕТАТОР PYTHON x32 (ПОДРОБНЕЕ СМ. ФУНКЦИЮ Configure())
.. code-block:: python
# UIDesktop: Взаимодействие с UI объектами приложений
from pyOpenRPA.Robot import UIDesktop
# 1С: UIO Селектор выбора базы
lDemoBaseUIOSelector = [{"title":"Запуск 1С:Предприятия","class_name":"V8TopLevelFrameTaxiStarter","backend":"uia"}]
lUIOInfoList = UIDesktop.UIOSelector_Get_UIOInfoList(lDemoBaseUIOSelector) # Получить словарь параметров по UIO селектору.
:param inUIOSelector: UIO селектор, который определяет UIO объект, для которого будет произведено извлечение всех атрибутов на всех уровнях.
:type inUIOSelector: list, обязательный
:param inElement: UIO объект, от которого выполнить поиск дочерних UIO объектов по UIO селектору inUIOSelector. По умолчанию None - поиск среди всех приложений.
:type inElement: UIO объект, необязательный
:return: dict, пример: {"title":None,"rich_text":None,"process_id":None,"process":None,"handle":None,"class_name":None,"control_type":None,"control_id":None,"rectangle":{"left":None,"top":None,"right":None,"bottom":None}, 'runtime_id':None}
"""
#Check the bitness #Check the bitness
lSafeOtherProcess = UIOSelector_SafeOtherGet_Process(inUIOSelector) lSafeOtherProcess = UIOSelector_SafeOtherGet_Process(inUIOSelector)
if lSafeOtherProcess is None: if lSafeOtherProcess is None:
@ -930,17 +959,25 @@ def UIOSelector_Get_UIOInfoList (inUIOSelector, inElement=None):
lResultList = lPIPEResponseDict["Result"] lResultList = lPIPEResponseDict["Result"]
return lResultList return lResultList
#################################################################################################### #old: - PywinautoExtTryToRestore
#Try to restore (maximize) window, if it's was minimized
#(особенность uia backend - он не может прицепиться к окну, если оно свернуто)
#inSpecificationList - UIOSelector
#old name - PywinautoExtTryToRestore
def UIOSelector_TryRestore_Dict(inSpecificationList): def UIOSelector_TryRestore_Dict(inSpecificationList):
""" """
Try to restore (maximize) window, if it's minimized. (!IMPORTANT! When use UIA framework minimized windows doesn't appear by the UIOSelector. You need to try restore windows and after that try to get UIO) Восстановить окно приложения на экране по UIO селектору inSpecificationList, если оно было свернуто. Функция обернута в try .. except - ошибок не возникнет.
:param inSpecificationList: UIOSelector - List of items, which contains condition attributes !ВНИМАНИЕ! ДАННАЯ ФУНКЦИОНАЛЬНОСТЬ УЖЕ ИСПОЛЬЗУЕТСЯ В РЯДЕ ДРУГИХ ФУНКЦИЙ ТАК КАК АДРЕССАЦИЯ ПО UIA FRAMEWORK НЕДОСТУПНА, ЕСЛИ ПРИЛОЖЕНИЕ СВЕРНУТО.
:return:
!ВНИМАНИЕ! ДАННАЯ ФУНКЦИОНАЛЬНОСТЬ В АВТОМАТИЧЕСКОМ РЕЖИМЕ ПОДДЕРЖИВАЕТ ВСЕ РАЗРЯДНОСТИ ПРИЛОЖЕНИЙ (32|64), КОТОРЫЕ ЗАПУЩЕНЫ В СЕСИИ. PYTHON x64 ИМЕЕТ ВОЗМОЖНОСТЬ ВЗЗАИМОДЕЙСТВИЯ С x32 UIO ОБЪЕКТАМИ, НО МЫ РЕКОМЕНДУЕМ ДОПОЛНИТЕЛЬНО ИСПОЛЬЗОВАТЬ ИНТЕРПРЕТАТОР PYTHON x32 (ПОДРОБНЕЕ СМ. ФУНКЦИЮ Configure())
.. code-block:: python
# UIDesktop: Взаимодействие с UI объектами приложений
from pyOpenRPA.Robot import UIDesktop
# 1С: UIO Селектор выбора базы
lDemoBaseUIOSelector = [{"title":"Запуск 1С:Предприятия","class_name":"V8TopLevelFrameTaxiStarter","backend":"uia"}]
UIDesktop.UIOSelector_TryRestore_Dict(lDemoBaseUIOSelector) # Попытка восстановления свернутого окна по UIO селектору.
:param inSpecificationList: UIO селектор, который определяет UIO объект, для которого будет произведено извлечение всех атрибутов на всех уровнях.
:type inSpecificationList: list, обязательный
""" """
lResult={} lResult={}
try: try:
@ -954,17 +991,24 @@ def UIOSelector_TryRestore_Dict(inSpecificationList):
except Exception: except Exception:
True==False True==False
return lResult return lResult
####################################################################################################
#Get the list of the UI object activities #old: - ElementActionGetList
#!!!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!!
#inControlSpecificationArray - UIOSelector
#old name - ElementActionGetList
def UIOSelector_Get_UIOActivityList (inUIOSelector): def UIOSelector_Get_UIOActivityList (inUIOSelector):
""" """
Get the list of the UI object activities Получить список доступных действий/функций по UIO селектору inUIOSelector. Описание возможных активностей см. ниже.
:param inUIOSelector: UIOSelector - List of items, which contains condition attributes !ВНИМАНИЕ! ДАННАЯ ФУНКЦИОНАЛЬНОСТЬ В АВТОМАТИЧЕСКОМ РЕЖИМЕ ПОДДЕРЖИВАЕТ ВСЕ РАЗРЯДНОСТИ ПРИЛОЖЕНИЙ (32|64), КОТОРЫЕ ЗАПУЩЕНЫ В СЕСИИ. PYTHON x64 ИМЕЕТ ВОЗМОЖНОСТЬ ВЗЗАИМОДЕЙСТВИЯ С x32 UIO ОБЪЕКТАМИ, НО МЫ РЕКОМЕНДУЕМ ДОПОЛНИТЕЛЬНО ИСПОЛЬЗОВАТЬ ИНТЕРПРЕТАТОР PYTHON x32 (ПОДРОБНЕЕ СМ. ФУНКЦИЮ Configure())
:return:
.. code-block:: python
# UIDesktop: Взаимодействие с UI объектами приложений
from pyOpenRPA.Robot import UIDesktop
# 1С: UIO Селектор выбора базы
lDemoBaseUIOSelector = [{"title":"Запуск 1С:Предприятия","class_name":"V8TopLevelFrameTaxiStarter","backend":"uia"}]
lActivityList = UIDesktop.UIOSelector_Get_UIOActivityList(lDemoBaseUIOSelector) # Получить список активностей по UIO селектору.
:param inUIOSelector: UIO селектор, который определяет UIO объект, для которого будет представлен перечень доступных активностей.
:type inUIOSelector: list, обязательный
""" """
#Check the bitness #Check the bitness
lSafeOtherProcess = UIOSelector_SafeOtherGet_Process(inUIOSelector) lSafeOtherProcess = UIOSelector_SafeOtherGet_Process(inUIOSelector)
@ -997,21 +1041,30 @@ def UIOSelector_Get_UIOActivityList (inUIOSelector):
lResult = lPIPEResponseDict["Result"] lResult = lPIPEResponseDict["Result"]
return lResult return lResult
#################################################################################################### #old: - ElementRunAction
#Run the activity in UIO (UI Object)
#!!!!!Safe call is included (you can set activity and UIDesktop will choose the bitness and return the result)!!!!!
#inUIOSelector
#inActionName - UIOActivity (name) from Pywinauto
#old name - ElementRunAction
def UIOSelectorUIOActivity_Run_Dict(inUIOSelector, inActionName, inArgumentList=None, inkwArgumentObject=None): def UIOSelectorUIOActivity_Run_Dict(inUIOSelector, inActionName, inArgumentList=None, inkwArgumentObject=None):
""" """
Run the activity in UIO (UI Object) Выполнить активность inActionName над UIO объектом, полученным с помощью UIO селектора inUIOSelector. Описание возможных активностей см. ниже.
:param inUIOSelector: UIOSelector - List of items, which contains condition attributes !ВНИМАНИЕ! ДАННАЯ ФУНКЦИОНАЛЬНОСТЬ В АВТОМАТИЧЕСКОМ РЕЖИМЕ ПОДДЕРЖИВАЕТ ВСЕ РАЗРЯДНОСТИ ПРИЛОЖЕНИЙ (32|64), КОТОРЫЕ ЗАПУЩЕНЫ В СЕСИИ. PYTHON x64 ИМЕЕТ ВОЗМОЖНОСТЬ ВЗЗАИМОДЕЙСТВИЯ С x32 UIO ОБЪЕКТАМИ, НО МЫ РЕКОМЕНДУЕМ ДОПОЛНИТЕЛЬНО ИСПОЛЬЗОВАТЬ ИНТЕРПРЕТАТОР PYTHON x32 (ПОДРОБНЕЕ СМ. ФУНКЦИЮ Configure())
:param inActionName: UIOActivity (name) activity name string from Pywinauto
:param inArgumentList: .. code-block:: python
:param inkwArgumentObject:
:return: # UIDesktop: Взаимодействие с UI объектами приложений
from pyOpenRPA.Robot import UIDesktop
# 1С: UIO Селектор выбора базы
lDemoBaseUIOSelector = [{"title":"Запуск 1С:Предприятия","class_name":"V8TopLevelFrameTaxiStarter","backend":"uia"}]
lActivityResult = UIDesktop.UIOSelectorUIOActivity_Run_Dict(lDemoBaseUIOSelector, "click") # выполнить действие над UIO объектом с помощью UIO селектора.
:param inUIOSelector: UIO селектор, который определяет UIO объект, для которого будет представлен перечень доступных активностей.
:type inUIOSelector: list, обязательный
:param inActionName: наименование активности, которую требуется выполнить над UIO объектом
:type inActionName: str, обязательный
:param inArgumentList: список передаваемых неименованных аргументов в функцию inActionName
:type inArgumentList: list, необязательный
:param inkwArgumentObject: словарь передаваемых именованных аргументов в функцию inActionName
:type inkwArgumentObject: dict, необязательный
:return: возвращает результат запускаемой функции с наименованием inActionName над UIO объектом
""" """
if inArgumentList is None: inArgumentList=[] # 2021 02 22 Minor fix by Ivan Maslov if inArgumentList is None: inArgumentList=[] # 2021 02 22 Minor fix by Ivan Maslov
if inkwArgumentObject is None: inkwArgumentObject={} # 2021 02 22 Minor fix by Ivan Maslov if inkwArgumentObject is None: inkwArgumentObject={} # 2021 02 22 Minor fix by Ivan Maslov
@ -1407,6 +1460,22 @@ def UIOSelector_SearchProcessNormalize_UIOSelector (inControlSpecificationArray)
#inElementInfo - UIOEI #inElementInfo - UIOEI
#old name - ElementInfoExportObject #old name - ElementInfoExportObject
def UIOEI_Convert_UIOInfo(inElementInfo): def UIOEI_Convert_UIOInfo(inElementInfo):
"""
Техническая функция: Дообогащение словаря с параметрами UIO объекта по заданному UIO.element_info
.. code-block:: python
# UIDesktop: Взаимодействие с UI объектами приложений
from pyOpenRPA.Robot import UIDesktop
# 1С: UIO Селектор выбора базы
lDemoBaseUIOSelector = [{"title":"Запуск 1С:Предприятия","class_name":"V8TopLevelFrameTaxiStarter","backend":"uia"}]
lUIO = UIDesktop.UIOSelector_Get_UIO(lDemoBaseUIOSelector) # Получить UIO объект по UIO селектору.
lUIOProcessInfoDict = UIDesktop.UIOEI_Convert_UIOInfo(lUIO.element_info)
:param inElementInfo: экземпляр класса UIO.element_info, для которого требуется дообогатить словарь с параметрами (в дальнейшем можно использовать как элемент UIO селектора).
:type inElementInfo: object, обязательный
:return: dict, пример: {"title":None,"rich_text":None,"process_id":None,"process":None,"handle":None,"class_name":None,"control_type":None,"control_id":None,"rectangle":{"left":None,"top":None,"right":None,"bottom":None}, 'runtime_id':None}
"""
#Подготовить выходную структуру данных #Подготовить выходную структуру данных
lResult = {"title":None,"rich_text":None,"process_id":None,"process":None,"handle":None,"class_name":None,"control_type":None,"control_id":None,"rectangle":{"left":None,"top":None,"right":None,"bottom":None}, 'runtime_id':None} lResult = {"title":None,"rich_text":None,"process_id":None,"process":None,"handle":None,"class_name":None,"control_type":None,"control_id":None,"rectangle":{"left":None,"top":None,"right":None,"bottom":None}, 'runtime_id':None}
#Проверка name #Проверка name

Loading…
Cancel
Save