#UIDesktopBugFix in PWASpecification (catch in SafeProcess function)

#Utils/Python goes to Sources pyOpenRPA (not from site-package)
#Minor fix in HTML Studio
dev-linux
Ivan Maslov 5 years ago
parent 927bda7564
commit b5ef9e3a13

3
.gitignore vendored

@ -17,4 +17,5 @@
/**/breakpoints.lst /**/breakpoints.lst
/**/Orchestrator/screenshot.png /**/Orchestrator/screenshot.png
**/.idea/** **/.idea/**
/**/screenshot.png /**/screenshot.png
/**/*.log

@ -0,0 +1,4 @@
cd %~dp0..\..\..\Sources
copy /Y ..\Resources\WPy64-3720\python-3.7.2.amd64\python.exe ..\Resources\WPy64-3720\python-3.7.2.amd64\OpenRPA_RobotRDPActive.exe
.\..\Resources\WPy64-3720\python-3.7.2.amd64\OpenRPA_RobotRDPActive.exe -m pyOpenRPA.Tools.RobotRDPActive
pause >nul

@ -508,6 +508,7 @@ def PWASpecification_Get_UIO(inControlSpecificationArray):
#return process application object #return process application object
#old name - None #old name - None
def PWASpecification_Get_PWAApplication(inControlSpecificationArray): def PWASpecification_Get_PWAApplication(inControlSpecificationArray):
inControlSpecificationArray=copy.deepcopy(inControlSpecificationArray)
#Определение backend #Определение backend
lBackend=mDefaultPywinautoBackend lBackend=mDefaultPywinautoBackend
if "backend" in inControlSpecificationArray[0]: if "backend" in inControlSpecificationArray[0]:
@ -939,13 +940,16 @@ def UIOXY_SearchChild_ListDict(inRootElement,inX,inY,inHierarchyList=[]):
#inControlSpecificationArray- UIOSelector #inControlSpecificationArray- UIOSelector
#old name - ElementGetChildElementList #old name - ElementGetChildElementList
def UIOSelector_GetChildList_UIOList(inUIOSelector=[], inBackend=mDefaultPywinautoBackend): def UIOSelector_GetChildList_UIOList(inUIOSelector=[], inBackend=mDefaultPywinautoBackend):
#mRobotLogger.info(f"File!!!!")
#mRobotLogger.info(f"inSelector:{str(inUIOSelector)}, inBackend:{str(inBackend)}")
#pdb.set_trace()
#Check the bitness #Check the bitness
lSafeOtherProcess = UIOSelector_SafeOtherGet_Process(inUIOSelector) lSafeOtherProcess = UIOSelector_SafeOtherGet_Process(inUIOSelector)
if lSafeOtherProcess is None: if lSafeOtherProcess is None:
#Подготовка входного массива #Подготовка входного массива
inUIOSelector=UIOSelector_SearchUIONormalize_UIOSelector(inUIOSelector) inUIOSelector=UIOSelector_SearchUIONormalize_UIOSelector(inUIOSelector)
#Выполнить идентификацию объектов, если передан массив #Выполнить идентификацию объектов, если передан массив
lResultList=[]; lResultList=[]
#ctypes.windll.user32.MessageBoxW(0, str(inControlSpecificationArray), "Your title", 1) #ctypes.windll.user32.MessageBoxW(0, str(inControlSpecificationArray), "Your title", 1)
if len(inUIOSelector) > 0: if len(inUIOSelector) > 0:
#Получить объект #Получить объект
@ -959,8 +963,8 @@ def UIOSelector_GetChildList_UIOList(inUIOSelector=[], inBackend=mDefaultPywinau
#Добавить информацию об обнаруженом объекте #Добавить информацию об обнаруженом объекте
lObjectInfoItem=UIOEI_Convert_UIOInfo(lTempObjectInfo) lObjectInfoItem=UIOEI_Convert_UIOInfo(lTempObjectInfo)
#Итератор внутри объекта (для точной идентификации) #Итератор внутри объекта (для точной идентификации)
lObjectInfoItem['ctrl_index']=lIterator; lObjectInfoItem['ctrl_index']=lIterator
lResultList.append(lObjectInfoItem); lResultList.append(lObjectInfoItem)
#Инкремент счетчика #Инкремент счетчика
lIterator=lIterator+1 lIterator=lIterator+1
else: else:

@ -233,11 +233,12 @@
mGlobal.TreeLoadSubTree =function (inElementId) { mGlobal.TreeLoadSubTree =function (inElementId) {
//Подгрузка массива спецификаций //Подгрузка массива спецификаций
lSpecificationArray = mGlobal.GUIElement[inElementId].GUISelectorFull lSpecificationArray = mGlobal.GUIElement[inElementId].GUISelectorFull
//lSpecificationArray[0]["backend"] = $(".openrpa-value-backend")[0].value
///Загрузка данных ///Загрузка данных
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: 'GUIAction', url: 'GUIAction',
data: '{"ModuleName":"UIDesktop", "ActivityName":"UIOSelector_GetChildList_UIOList","ArgumentList":['+JSON.stringify(lSpecificationArray)+']}', data: '{"ModuleName":"UIDesktop", "ActivityName":"UIOSelector_GetChildList_UIOList","ArgumentList":['+JSON.stringify(lSpecificationArray)+'], "ArgumentDict":{"inBackend": "'+$(".openrpa-value-backend")[0].value+'"}}',
success: success:
function(lData,l2,l3) function(lData,l2,l3)
{ {

@ -18,13 +18,14 @@ import time
""" """
def SessionConnect(inRDPSessionConfiguration): def SessionConnect(inRDPSessionConfiguration):
#Run mstsc #Run mstsc
os.system("mstsc.exe") from pywinauto.application import Application
time.sleep(2) lRDPApplication = Application(backend="uia").start("mstsc.exe")
lProcessId = lRDPApplication.process
#Expand the parameter section #Expand the parameter section
UIDesktop.UIOSelector_Get_UIO( UIDesktop.UIOSelector_Get_UIO(
[ [
{"title":"Подключение к удаленному рабочему столу","backend":"uia"}, {"process": lProcessId,"backend":"uia"},
{"title":"Пара&метры >>"} {"title": "Пара&метры >>"}
] ]
).click() ).click()
#Set host:port #Set host:port

@ -1,7 +1,8 @@
#Import parent folder to import current / other packages #Import parent folder to import current / other packages
######################################################### #########################################################
import sys import sys
lFolderPath = "\\".join(__file__.split("\\")[:-4]) #lFolderPath = "\\".join(__file__.split("\\")[:-4])
lFolderPath = "/".join(__file__.split("/")[:-4])
sys.path.insert(0, lFolderPath) sys.path.insert(0, lFolderPath)
######################################################### #########################################################
from pyOpenRPA.Tools.RobotRDPActive import RDPConnector from pyOpenRPA.Tools.RobotRDPActive import RDPConnector

@ -1,3 +1,3 @@
cd %~dp0 cd %~dp0..\Sources
.\..\Resources\WPy32-3720\python-3.7.2\python.exe .\..\Resources\WPy32-3720\python-3.7.2\python.exe
pause >nul pause >nul

@ -1,3 +1,3 @@
cd %~dp0 cd %~dp0..\Sources
..\Resources\WPy64-3720\python-3.7.2.amd64\python.exe ..\Resources\WPy64-3720\python-3.7.2.amd64\python.exe
pause >nul pause >nul
Loading…
Cancel
Save