#Python keyboard (need to install in python) #Robot_RestoreParentHierarchy

dev-linux
Ivan Maslov 6 years ago
parent d7ab76f5fc
commit 16dcab5d97

@ -7,7 +7,6 @@ import os
import signal import signal
import pdb import pdb
import orchestratorServer import orchestratorServer
lGlobalDict={} lGlobalDict={}
#"JSONConfigurationDict":<JSON> #"JSONConfigurationDict":<JSON>
#"ActivityLog":[{""}] #"ActivityLog":[{""}]

@ -3,7 +3,7 @@
Open source RPA platform (Coming soon Q2 2019) for Windows. Open source RPA platform (Coming soon Q2 2019) for Windows.
Dependencies Dependencies
* Python 3 x32 [psutil, pywinauto, wmi, PIL] * Python 3 x32 [psutil, pywinauto, wmi, PIL, Keyboard]
* Python 3 x64 * Python 3 x64
* pywinauto (Windows GUI automation) * pywinauto (Windows GUI automation)
* Semantic UI CSS framework * Semantic UI CSS framework

@ -35,7 +35,7 @@
mGlobal.Actions.fAutomationSearchMouseElementHierarchyRun= function(inElementId) mGlobal.Actions.fAutomationSearchMouseElementHierarchyRun= function(inElementId)
{ {
//Подгрузка массива спецификаций //Подгрузка массива спецификаций
lSpecificationArray = mGlobal.GUIElement[inElementId].GUISelectorFull lSpecificationArray = mGlobal.GUIElement[inElementId].GUISelectorFull;
///Загрузка данных ///Загрузка данных
$.ajax({ $.ajax({
type: "POST", type: "POST",
@ -44,11 +44,31 @@
success: success:
function(lData,l2,l3) function(lData,l2,l3)
{ {
var lResponseJSON=JSON.parse(lData) var lResponseJSON=JSON.parse(lData);
///Подготовить структуру рендеринга, если у текущего объекта имееется родитель
var lStructureToRender=lResponseJSON.outputObject;
if (lSpecificationArray.length>1) {
var lStructureToRenderParent=[]
var lStructureToRenderLocal=lStructureToRenderParent;
for (var i=0;i<lSpecificationArray.length-1;i++) {
lStructureToRenderLocal.push(lSpecificationArray[i]);
///Добавить SpecificationChild, если итератор не заканчивается
if (i<lSpecificationArray.length-2) {
lStructureToRenderLocal[0]["SpecificationChild"]=[]
lStructureToRenderLocal=lStructureToRenderLocal[0]["SpecificationChild"]
}
///Если последнее звено - добавить структуру, которая поступила с сервера
if (i==lSpecificationArray.length-2) {
lStructureToRenderLocal[0]["SpecificationChild"]=lStructureToRender
lStructureToRender=lStructureToRenderParent
}
}
}
///Очистить дерево ///Очистить дерево
mGlobal.ElementTree.fClear(); mGlobal.ElementTree.fClear();
///Прогрузить новое дерево ///Прогрузить новое дерево
mGlobal.ElementTree.fRender(lResponseJSON.outputObject); mGlobal.ElementTree.fRender(lStructureToRender);
}, },
dataType: "text" dataType: "text"
}); });

@ -133,7 +133,15 @@ def AutomationSearchMouseElementHierarchy(inElementSpecification,inFlagIsSearchO
#Получить информацию про объект #Получить информацию про объект
lItemInfo2.append(ElementInfoExportObject(lElement.element_info)) lItemInfo2.append(ElementInfoExportObject(lElement.element_info))
#Дообогатить информацией об индексе ребенка в родительском объекте #Дообогатить информацией об индексе ребенка в родительском объекте
if "index" in lListItem:
if lListItem["index"] is not None:
lItemInfo2[-1]['ctrl_index']=lListItem["index"] lItemInfo2[-1]['ctrl_index']=lListItem["index"]
else:
if "ctrl_index" in lListItem:
lItemInfo2[-1]['ctrl_index']=lListItem["ctrl_index"]
else:
if "ctrl_index" in lListItem:
lItemInfo2[-1]['ctrl_index']=lListItem["ctrl_index"]
#Оборачиваем потомка в массив, потому что у родителя по структуре интерфейса может быть больше одного наследников #Оборачиваем потомка в массив, потому что у родителя по структуре интерфейса может быть больше одного наследников
lItemInfo2[-1]['SpecificationChild']=[] lItemInfo2[-1]['SpecificationChild']=[]
lItemInfo2=lItemInfo2[-1]['SpecificationChild'] lItemInfo2=lItemInfo2[-1]['SpecificationChild']

Loading…
Cancel
Save