Перенос роботов с Windows на Linux
Last updated
Last updated
При переносе робота из Sherpa Designer в среде Windows и Linux следует учитывать несколько важных аспектов. Если блок присутствует в Sherpa Designer как для Windows, так и для Linux, дополнительные действия по его переносу не требуются. Блоки функционируют в PowerShell, который работает одинаково на обеих платформах. Все классы и функциональные возможности, реализованные в роботе для Windows, без изменений переносятся в среду Linux.
Однако необходимо отметить, что COM-объекты Word и Excel не будут работать на Linux-подобных системах. При переносе необходимо проверить «Панель свойств» у всех блоков, связанных с Word и Excel, и убрать галочку в чекбоксе: . После того, как пользователь очистит чекбоксы «Использовать COM», блоки Word и Excel в среде Linux будут работать корректно.
При работе с Linux необходимо учитывать, что пути к файлам имеют иной формат, использующий обратный слэш.
Примеры обозначений разделителей в путях к файлу:
В Linux-подобных системах используется прямой слэш: /home/user/documents/file.txt
В Windows используется обратный слэш: C:\Users\User\Documents\file.txt
Однако, абсолютные пути (такие как C: или D:) не будут функционировать. Используйте стандартные методы для определения текущего рабочего каталога, такие как `[Environment]::CurrentDirectory`. Это позволит вам точно определить, где находится ваш код, и поможет правильно сформировать относительные пути. Относительный путь указывает на местоположение файла относительно текущего рабочего каталога. Например, если текущий каталог: /home/user, то для доступа к файлу file.txt в каталоге documents вы можете использовать: documents/file.txt.
Что касается записи селекторов, то в Yandex Browser/Chromium в среде Linux используется тот же плагин, как и в Windows. Достаточно установить плагин следуя инструкциям в разделе Установка плагина в Yandex Browser.
Если приложение поддерживает технологию at-spi (Assistive Technology Service Provider Interface), то робот будет работать с ним напрямую через селекторы, как в среде Windows.
Есть некоторые ограничения, связанные с Блоками Sherpa Designer, доступными в среде Linux:
Категория Блоков
Блоки, недоступные в Linux
UI Automation
ClickOnText
CopyToClipboard
PasteFromClipboard
CollectData
SelectOption
DragAndDrop
HighlightElement
ClearCache
ControlCache
GetGridData
Browser Automation
CopyToClipboardInternet
PasteFromClipboardInternet
HTTP
InternalBrowserRequest
GetYandexLinks
GetGoogleLinks
InternalAsyncBrowserGet
SAP Automation
SAPCreateConnection
SAPCloseConnection
SAPConnectConnection
SAPSelectWindow
SAPClick
SAPPressEnter
SAPDoubleClick
SAPSelect
SAPUnSelect
SAPState
SAPCollapse
SAPExpand
SAPGetText
SAPSetText
SAPColumnCount
SAPRowCount
SAPCount
SAPSapEvent
SAPExportTable
SAPImportTable
SAPGetCellValue
SAPSetCellValue
SAPCurrentDate
SAPSelectRange
SAPElementExists
SAPPressF4
SAPHScroll
SAPVScroll
Dialogs
ManLoop
MediaPlayer
Excel Automation
FindTextExcel
Outlook Automation
GetOutlookMailMessages
SendOutlookMailMessage
ReSendOutlookMailMessage
SaveAttachmentsFromOutlookMessage
SaveMailFromOutlookMessage
GetOutlookFolders
MoveOutlookMessage
ExtractEmailFromOutlookMessage
LoadMsgFile
ReplyOutlookMailMessage
ChangePropertiesMailFromOutlookMessage
Exchange Automation
GetExchangeMailMessages
SendExchangeMailMessage
ReSendExchangeMailMessage
SaveAttachmentsFromExchangeMessage
SaveMailFromExchangeMessage
MoveExchangeMessage
ReplyExchangeMailMessage
Clipboard
GetClipboard
SetClipboard
SetFilesClipboard
Process/Service
ListServices
StartService
StopService
SetServiceStartupType
GetWindowState
SetWindowState
SetWindowLanguage
SetWindowPosition
AttachApplication
Terminal Automation
TerminalConnectSession
TerminalCloseConnection
TerminalGetCursor
TerminalMoveCursor
TerminalGetTextPosition
TerminalGetFieldPosition
TerminalSetTextPosition
TerminalSetFieldPosition
TerminalGetField
TerminalSetField
TerminalGetScreenArea
TerminalSendKeys
TerminalSendControlKey
TerminalWaitTextPosition
TerminalWaitFieldPosition
TerminalGetFieldBetween
TerminalSetFieldBetween
Registry
ReadValueFromRegistry
WriteValueToRegistry
ListitemsFromRegistry
CreatePropertyInRegistry
RemovePropertyInRegistry
CreateHiveInRegistry
RemoveHiveInRegistry
1C Automation
1CCreateConnection
1CCloseConnection
1CExecuteQuery
1CExecuteCode
1CCollectData
1CTableCellClick
1CCheckboxControl
RDP
RDPGenerateConnection
RDPCreateConnection
RDPConnectInstance
RDPCloseConnection
RDPDisconnectSession
RDPOperationFile
RDPRunScript
Windows Credentials
SetWindowsCredentials
GetWindowsCredentials
DeleteWindowsCredentials
GetCyberArkCredentials
Machine Learning
RegressionTrain
RegressionPredict
ClassificationTrain
ClassificationPredict
ClusterTrain
ClusterPredict
AnomalydetectionTrain
AnomalydetectionPredict
AssistantGenerator
Некоторые функции, такие как режим PiP (картинка в картинке), позволяющая пользователям просматривать видео или другие визуальные материалы в небольшом окне, которое остается поверх других приложений или окон, недоступны в Linux, так как это технология Microsoft.
В системах Linux полностью работает блок Шаблонизатора. Однако, если требуется изменить файл шаблона, то это можно сделать только в среде Windows. Это связано с тем, что Шаблонизатор для Linux пока еще находится в процессе разработки. На данный момент, некоторые редакторы, такие как Word и специализированные инструменты для дизайнеров, используют функции редактирования, которые временно недоступны в Linux. После внесения изменений в файл шаблона в среде Windows потребуется создать или обновить JSON-файл, чтобы отразить эти изменения в Шаблонизаторе для Linux. После этого JSON-файл загружается в систему с использованием специфичных для вашей среды команд или API.
При переносе роботов могут возникнуть проблемы с отработкой селекторов по картинкам, так как робот не найдет изображения.
В Sherpa Designer используются четыре метода распознавания образов (поле «Тип сравнения»):
SQDIFF (Квадратичная разница) - метод вычисляет квадратичную разницу между пикселями двух изображений. Чем меньше значение, тем больше схожесть изображений;
CCORR (Корреляция) - метод использует корреляцию для оценки схожести между изображениями. Дает наилучшие результаты, когда изображения имеют одинаковую освещенность и контрастность;
CCOEFF (Коэффициент корреляции) - метод на основе коэффициента корреляции измеряет степень, до которой два изображения могут быть сопоставлены, нормируя результаты по их средним значениям;
NATIVE (по умолчанию) - метод является предустановленным и используется для быстрого сравнения с помощью встроенных алгоритмов, основанных на особенностях платформы.
Если метод NATIVE не сработал, рекомендуется использовать SQDIFF, так как в Linux-подобных системах отсутствует битовая карта изображения окна, доступная в Windows.
Также важно, чтобы место записи элементов управления совпадало с разрешением экрана и глубиной цветов, иначе изображения могут масштабироваться, и робот не сможет их найти.