@ -316,30 +316,34 @@ def UIOSelector_Exist_Bool (inUIOSelector):
else :
lResult = lPIPEResponseDict [ " Result " ]
return lResult
#################################################################################################
#Wait for UIO is appear (at least one of them or all at the same time)
#inSpecificationListList - List of the UIOSelector
#inWaitSecs - Время ожидания объекта в секундах
#inFlagWaitAllInMoment - доп. условие - ожидать появление всех UIOSelector одновременно
#return: [0,1,2] - index of UIOSpecification, which is appear
#old name - -
#####Внимание#####
##Функция ожидания появления элементов (тк элементы могут быть недоступны, неизвестно в каком фреймворке каждый из них может появиться)
def UIOSelectorsSecs_WaitAppear_List ( inSpecificationListList , inWaitSecs , inFlagWaitAllInMoment = False ) :
#old: -
def UIOSelectorsSecs_WaitAppear_List ( inSpecificationListList , inWaitSecs = 86400.0 , inFlagWaitAllInMoment = False ) :
'''
Wait for many UI object will appear in GUI for inWaitSecs seconds .
Ожидать появление хотя бы 1 - г о / всех UIO объектов по заданным UIO селекторам
! ВНИМАНИЕ ! ДАННАЯ ФУНКЦИОНАЛЬНОСТЬ В АВТОМАТИЧЕСКОМ РЕЖИМЕ ПОДДЕРЖИВАЕТ В С Е РАЗРЯДНОСТИ ПРИЛОЖЕНИЙ ( 32 | 64 ) , КОТОРЫЕ ЗАПУЩЕНЫ В СЕСИИ . PYTHON x64 ИМЕЕТ ВОЗМОЖНОСТЬ ВЗЗАИМОДЕЙСТВИЯ С x32 UIO ОБЪЕКТАМИ , Н О МЫ РЕКОМЕНДУЕМ ДОПОЛНИТЕЛЬНО ИСПОЛЬЗОВАТЬ ИНТЕРПРЕТАТОР PYTHON x32 ( ПОДРОБНЕЕ С М . ФУНКЦИЮ Configure ( ) )
. . code - block : : python
: param inSpecificationListList : UIOSelector list .
Example : [
# UIDesktop: Взаимодействие с UI объектами приложений
from pyOpenRPA . Robot import UIDesktop
# 1С : UIO Селектор выбора базы
lDemoBaseUIOSelector = [ { " title " : " Запуск 1С :Предприятия " , " class_name " : " V8TopLevelFrameTaxiStarter " , " backend " : " uia " } , { " title " : " DEMO " , " depth_start " : 5 , " depth_end " : 5 } ]
lNotepadOKSelector = [ { " title " : " notepad " } , { " title " : " OK " } ]
lNotepadCancelSelector = [ { " title " : " notepad " } , { " title " : " Cancel " } ]
lDemoBaseUIOExistList = UIDesktop . UIOSelectorsSecs_WaitAppear_List ( [ lDemoBaseUIOSelector , lNotepadOKSelector , lNotepadCancelSelector ] ) # Ожидать появление UIO объекта
: param inSpecificationListList : Список UIO селекторов , которые определяют критерии поиска UIO объектов
Пример : [
[ { " title " : " notepad " } , { " title " : " OK " } ] ,
[ { " title " : " notepad " } , { " title " : " Cancel " } ]
]
: param inWaitSecs : Float value ( seconds ) for wait UI element appear in GUI
: param inFlagWaitAllInMoment : True - Wait all UI objects from the UIOSelector list to be appeared
: return : List of index , which UI object UIO will be appeared . Example : [ 1 ] # Appear only UI object with UIO selector: [{"title":"notepad"},{"title":"Cancel"}]
: type inSpecificationListList : list , обязательный
: param inWaitSecs : Количество секунд , которые отвести на ожидание UIO объектов . По умолчанию 24 часа ( 86400 секунд )
: type inWaitSecs : float , необязательный
: param inFlagWaitAllInMoment : True - Ожидать до того момента , пока не появятся все запрашиваемые UIO объекты на рабочей области
: return : Список индексов , которые указывают на номер входящих UIO селекторов , которые были обнаружены на рабочей области . Пример : [ 0 , 2 ]
'''
lResultFlag = False
lSecsSleep = 1 #Настроечный параметр
@ -370,29 +374,36 @@ def UIOSelectorsSecs_WaitAppear_List (inSpecificationListList,inWaitSecs,inFlagW
lSecsDone = lSecsDone + lSecsSleep
time . sleep ( lSecsSleep )
return lResultList
#################################################################################################
#Wait for UIO is Disappear (at least one of them or all at the same time)
#inSpecificationListList - List of the UIOSelector
#inWaitSecs - Время ожидания пропажи объекта в секундах
#inFlagWaitAllInMoment - доп. условие - ожидать пропажу всех UIOSelector одновременно
#return: [0,1,2] - index of UIOSpecification, which is Disappear
#old name - -
#####Внимание#####
##Функция ожидания пропажи элементов (тк элементы могут быть недоступны, неизвестно в каком фреймворке каждый из них может появиться)
def UIOSelectorsSecs_WaitDisappear_List ( inSpecificationListList , inWaitSecs , inFlagWaitAllInMoment = False ) :
#old: -
def UIOSelectorsSecs_WaitDisappear_List ( inSpecificationListList , inWaitSecs = 86400.0 , inFlagWaitAllInMoment = False ) :
'''
Wait for many UI object will disappear in GUI for inWaitSecs seconds .
Ожидать исчезновение хотя бы 1 - г о / всех UIO объектов по заданным UIO селекторам
! ВНИМАНИЕ ! ДАННАЯ ФУНКЦИОНАЛЬНОСТЬ В АВТОМАТИЧЕСКОМ РЕЖИМЕ ПОДДЕРЖИВАЕТ В С Е РАЗРЯДНОСТИ ПРИЛОЖЕНИЙ ( 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 " } , { " title " : " DEMO " , " depth_start " : 5 , " depth_end " : 5 } ]
lNotepadOKSelector = [ { " title " : " notepad " } , { " title " : " OK " } ]
lNotepadCancelSelector = [ { " title " : " notepad " } , { " title " : " Cancel " } ]
lDemoBaseUIOExistList = UIDesktop . UIOSelectorsSecs_WaitDisappear_List ( [ lDemoBaseUIOSelector , lNotepadOKSelector , lNotepadCancelSelector ] ) # Ожидать исчезновение UIO объектов
: param inSpecificationListList : UIOSelector list .
Example : [
: param inSpecificationListList : Список UIO селекторов , которые определяют критерии поиска UIO объектов
Пример : [
[ { " title " : " notepad " } , { " title " : " OK " } ] ,
[ { " title " : " notepad " } , { " title " : " Cancel " } ]
]
: param inWaitSecs : Float value ( seconds ) for wait UI element disappear in GUI
: param inFlagWaitAllInMoment : True - Wait all UI objects from the UIOSelector list to be disappeared .
: return : List of index , which UI object UIO will be disappeared . Example : [ 1 ] # Disappear only UI object with UIO selector: [{"title":"notepad"},{"title":"Cancel"}]
: return :
: type inSpecificationListList : list , обязательный
: param inWaitSecs : Количество секунд , которые отвести на ожидание исчезновения UIO объектов . По умолчанию 24 часа ( 86400 секунд )
: type inWaitSecs : float , необязательный
: param inFlagWaitAllInMoment : True - Ожидать до того момента , пока не исчезнут все запрашиваемые UIO объекты на рабочей области
: return : Список индексов , которые указывают на номер входящих UIO селекторов , которые были обнаружены на рабочей области . Пример : [ 0 , 2 ]
'''
lResultFlag = False
lSecsSleep = 1 #Настроечный параметр
lSecsDone = 0
@ -422,56 +433,77 @@ def UIOSelectorsSecs_WaitDisappear_List (inSpecificationListList,inWaitSecs,inFl
lSecsDone = lSecsDone + lSecsSleep
time . sleep ( lSecsSleep )
return lResultList
#################################################################################################
#Wait for UIO is appear (at least one of them or all at the same time)
#inSpecificationList - UIOSelector
#inWaitSecs - Время ожидания объекта в секундах
#return: Bool - True - UIO is appear
#old name - -
#old: -
def UIOSelectorSecs_WaitAppear_Bool ( inSpecificationList , inWaitSecs ) :
'''
Wait for UI object will appear in GUI for inWaitSecs seconds .
Ожидать появление 1 - г о UIO объекта по заданному UIO селектору
! ВНИМАНИЕ ! ДАННАЯ ФУНКЦИОНАЛЬНОСТЬ В АВТОМАТИЧЕСКОМ РЕЖИМЕ ПОДДЕРЖИВАЕТ В С Е РАЗРЯДНОСТИ ПРИЛОЖЕНИЙ ( 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 " } , { " title " : " DEMO " , " depth_start " : 5 , " depth_end " : 5 } ]
lDemoBaseUIOExistBool = UIDesktop . UIOSelectorSecs_WaitAppear_Bool ( lDemoBaseUIOSelector ) # Ожидать появление UIO объекта
: param inSpecificationList : UIOSelector . Example : [ { " title " : " notepad " } , { " title " : " OK " } ]
: param inWaitSecs : Float value ( seconds ) for wait UI element appear in GUI
: return : True - UI object will appear . False - else case
: param inSpecificationList : UIO селектор , который определяет критерии поиска UIO объекта
: type inSpecificationList : list , обязательный
: param inWaitSecs : Количество секунд , которые отвести на ожидание UIO объекта . По умолчанию 24 часа ( 86400 секунд )
: type inWaitSecs : float , необязательный
: return : True - UIO объект был обнаружен . False - обратная ситуациая
'''
lWaitAppearList = UIOSelectorsSecs_WaitAppear_List ( [ inSpecificationList ] , inWaitSecs )
lResult = False
if len ( lWaitAppearList ) > 0 :
lResult = True
return lResult
#################################################################################################
#Wait for UIO is disappear (at least one of them or all at the same time)
#inSpecificationList - UIOSelector
#inWaitSecs - Время ожидания пропажи объекта в секундах
#return: Bool - True - UIO is Disappear
#old name - -
def UIOSelectorSecs_WaitDisappear_Bool ( inSpecificationList , inWaitSecs ) :
'''
Wait for UI object will disappear in GUI for inWaitSecs seconds .
Ожидать исчезновение 1 - г о UIO объекта по заданному UIO селектору
! ВНИМАНИЕ ! ДАННАЯ ФУНКЦИОНАЛЬНОСТЬ В АВТОМАТИЧЕСКОМ РЕЖИМЕ ПОДДЕРЖИВАЕТ В С Е РАЗРЯДНОСТИ ПРИЛОЖЕНИЙ ( 32 | 64 ) , КОТОРЫЕ ЗАПУЩЕНЫ В СЕСИИ . PYTHON x64 ИМЕЕТ ВОЗМОЖНОСТЬ ВЗЗАИМОДЕЙСТВИЯ С x32 UIO ОБЪЕКТАМИ , Н О МЫ РЕКОМЕНДУЕМ ДОПОЛНИТЕЛЬНО ИСПОЛЬЗОВАТЬ ИНТЕРПРЕТАТОР PYTHON x32 ( ПОДРОБНЕЕ С М . ФУНКЦИЮ Configure ( ) )
. . code - block : : python
: param inSpecificationList : UIOSelector .
Example : [ { " title " : " notepad " } , { " title " : " OK " } ]
: param inWaitSecs : Float value ( seconds ) for wait UI element disappear in GUI
: return : True - UI object will disappear . False - else case
# UIDesktop: Взаимодействие с UI объектами приложений
from pyOpenRPA . Robot import UIDesktop
# 1С : UIO Селектор выбора базы
lDemoBaseUIOSelector = [ { " title " : " Запуск 1С :Предприятия " , " class_name " : " V8TopLevelFrameTaxiStarter " , " backend " : " uia " } , { " title " : " DEMO " , " depth_start " : 5 , " depth_end " : 5 } ]
lDemoBaseUIOExistBool = UIDesktop . UIOSelectorSecs_WaitDisappear_Bool ( lDemoBaseUIOSelector ) # Ожидать исчезновение UIO объекта
: param inSpecificationList : UIO селектор , который определяет критерии поиска UIO объекта
: type inSpecificationList : list , обязательный
: param inWaitSecs : Количество секунд , которые отвести на исчезновение UIO объекта . По умолчанию 24 часа ( 86400 секунд )
: type inWaitSecs : float , необязательный
: return : True - UIO объект был обнаружен . False - обратная ситуациая
'''
lWaitDisappearList = UIOSelectorsSecs_WaitDisappear_List ( [ inSpecificationList ] , inWaitSecs )
lResult = False
if len ( lWaitDisappearList ) > 0 :
lResult = True
return lResult
#################################################################################################
#Get process bitness (32 or 64)
#inSpecificationList - UIOSelector
#old name - None
#return None (if Process not found), int 32, or int 64
#old: -
def UIOSelector_Get_BitnessInt ( inSpecificationList ) :
'''
Detect process bitness by the UI Object UIO Selector .
Определить разрядность приложения по UIO селектору . Вернуть результат в формате целого числа ( 64 или 32 )
. . code - block : : python
# UIDesktop: Взаимодействие с UI объектами приложений
from pyOpenRPA . Robot import UIDesktop
# 1С : UIO Селектор выбора базы
lDemoBaseUIOSelector = [ { " title " : " Запуск 1С :Предприятия " , " class_name " : " V8TopLevelFrameTaxiStarter " , " backend " : " uia " } , { " title " : " DEMO " , " depth_start " : 5 , " depth_end " : 5 } ]
lDemoBaseBitInt = UIDesktop . UIOSelector_Get_BitnessInt ( lDemoBaseUIOSelector ) # Определить разрядность приложения, в котором обнаружен UIO объект по селектору
: param inSpecificationList : UIOSelector . Example : [ { " title " : " notepad " } , { " title " : " OK " } ]
: return : int 32 or int 64
: param inSpecificationList : UIO селектор , который определяет критерии поиска UIO объекта
: type inSpecificationList : list , обязательный
: return : None - UIO объект не обнаружен ; 64 ( int ) - разрядность приложения равна 64 битам ; 32 ( int ) - разрядность приложения равна 32 битам
'''
lResult = None
#Получить объект Application (Для проверки разрядности)
@ -482,17 +514,23 @@ def UIOSelector_Get_BitnessInt (inSpecificationList):
else :
lResult = 32
return lResult
#################################################################################################
#Get process bitness ("32" or "64")
#inSpecificationList - UIOSelector
#old name - None
#return None (if Process not found), int 32, or int 64
#old: -
def UIOSelector_Get_BitnessStr ( inSpecificationList ) :
'''
Detect process bitness by the UI Object UIO Selector .
Определить разрядность приложения по UIO селектору . Вернуть результат в формате строки ( " 64 " или " 32 " )
: param inSpecificationList : UIOSelector . Example : [ { " title " : " notepad " } , { " title " : " OK " } ]
: return : str " 32 " or str " 64 "
. . code - block : : python
# UIDesktop: Взаимодействие с UI объектами приложений
from pyOpenRPA . Robot import UIDesktop
# 1С : UIO Селектор выбора базы
lDemoBaseUIOSelector = [ { " title " : " Запуск 1С :Предприятия " , " class_name " : " V8TopLevelFrameTaxiStarter " , " backend " : " uia " } , { " title " : " DEMO " , " depth_start " : 5 , " depth_end " : 5 } ]
lDemoBaseBitStr = UIDesktop . UIOSelector_Get_BitnessStr ( lDemoBaseUIOSelector ) # Определить разрядность приложения, в котором обнаружен UIO объект по селектору
: param inSpecificationList : UIO селектор , который определяет критерии поиска UIO объекта
: type inSpecificationList : list , обязательный
: return : None - UIO объект не обнаружен ; " 64 " ( str ) - разрядность приложения равна 64 битам ; " 32 " ( str ) - разрядность приложения равна 32 битам
'''
lResult = None
#Получить объект Application (Для проверки разрядности)
@ -503,15 +541,17 @@ def UIOSelector_Get_BitnessStr (inSpecificationList):
else :
lResult = " 32 "
return lResult
#################################################################################################
#Get OS bitness (32 or 64)
#old name - None
#return int 32, or int 64
#old: -
def Get_OSBitnessInt ( ) :
'''
Detect OS bitness .
Определить разрядность робота , в котором запускается данная функция
. . code - block : : python
: return : int 32 or int 64
from pyOpenRPA . Robot import UIDesktop
lRobotBitInt = UIDesktop . Get_OSBitnessInt ( ) # Определить разрядность робота, в котором была вызвана это функция
: return : 64 ( int ) - разрядность приложения равна 64 битам ; 32 ( int ) - разрядность приложения равна 32 битам
'''
lResult = 32
if pywinauto . sysinfo . is_x64_OS ( ) :