Перенос роботов с Windows на Linux

Ключевые моменты переноса

При переносе робота из 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

В системах Linux полностью работает блок Шаблонизатора. Однако, если требуется изменить файл шаблона, то это можно сделать только в среде Windows. Это связано с тем, что Шаблонизатор для Linux пока еще находится в процессе разработки. На данный момент, некоторые редакторы, такие как Word и специализированные инструменты для дизайнеров, используют функции редактирования, которые временно недоступны в Linux. После внесения изменений в файл шаблона в среде Windows потребуется создать или обновить JSON-файл, чтобы отразить эти изменения в Шаблонизаторе для Linux. После этого JSON-файл загружается в систему с использованием специфичных для вашей среды команд или API.

Элементы веб-страницы

При переносе роботов могут возникнуть проблемы с отработкой селекторов по картинкам, так как робот не найдет изображения.

В Sherpa Designer используются четыре метода распознавания образов (поле «Тип сравнения»):

  • SQDIFF (Квадратичная разница) - метод вычисляет квадратичную разницу между пикселями двух изображений. Чем меньше значение, тем больше схожесть изображений;

  • CCORR (Корреляция) - метод использует корреляцию для оценки схожести между изображениями. Дает наилучшие результаты, когда изображения имеют одинаковую освещенность и контрастность;

  • CCOEFF (Коэффициент корреляции) - метод на основе коэффициента корреляции измеряет степень, до которой два изображения могут быть сопоставлены, нормируя результаты по их средним значениям;

  • NATIVE (по умолчанию) - метод является предустановленным и используется для быстрого сравнения с помощью встроенных алгоритмов, основанных на особенностях платформы.

Если метод NATIVE не сработал, рекомендуется использовать SQDIFF, так как в Linux-подобных системах отсутствует битовая карта изображения окна, доступная в Windows.

Также важно, чтобы место записи элементов управления совпадало с разрешением экрана и глубиной цветов, иначе изображения могут масштабироваться, и робот не сможет их найти.

Last updated