Перенос роботов с 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.
Также важно, чтобы место записи элементов управления совпадало с разрешением экрана и глубиной цветов, иначе изображения могут масштабироваться, и робот не сможет их найти.