Transferência de robôs do Windows para Linux#

Pontos-chave da transferência #

Ao transferir um robô do Sherpa Designer no ambiente Windows para Linux, é necessário considerar alguns aspectos importantes. Se um bloco estiver presente no Sherpa Designer tanto para Windows quanto para Linux, ações adicionais para sua transferência não são necessárias. Os blocos funcionam no PowerShell, que opera da mesma forma em ambas as plataformas. Todas as classes e funcionalidades implementadas no robô para Windows são transferidas para o ambiente Linux sem alterações.

No entanto, é importante notar que objetos COM do Word e Excel não funcionarão em sistemas semelhantes ao Linux. Durante a transferência, é necessário verificar o "Painel de Propriedades" de todos os blocos relacionados ao Word e Excel e desmarcar a caixa de seleção: . Após o usuário desmarcar as caixas de seleção "Usar COM", os blocos do Word e Excel no ambiente Linux funcionarão corretamente.

Diferenças nos caminhos dos arquivos#

Ao trabalhar com Linux, é necessário considerar que os caminhos dos arquivos têm um formato diferente, utilizando a barra normal.

Exemplos de notações de separadores em caminhos de arquivos:

  • Em sistemas semelhantes ao Linux, utiliza-se a barra normal: /home/user/documents/file.txt
  • No Windows, utiliza-se a barra invertida: C:\Users\User\Documents\file.txt

No entanto, caminhos absolutos (como C: ou D:) não funcionarão. Utilize métodos padrão para determinar o diretório de trabalho atual, como `[Environment]::CurrentDirectory`. Isso permitirá que você identifique com precisão onde seu código está localizado e ajudará a formar corretamente os caminhos relativos. Um caminho relativo indica a localização do arquivo em relação ao diretório de trabalho atual. Por exemplo, se o diretório atual for:
/home/user, para acessar o arquivo file.txt no diretório documents, você pode usar: documents/file.txt.

Gravação de seletores em navegadores e aplicativos#

No que diz respeito à gravação de seletores, no Yandex Browser/Chromium no ambiente Linux, utiliza-se o mesmo plugin que no Windows. Basta instalar o plugin seguindo as instruções na seção Instalação do plugin no Yandex Browser.

Se o aplicativo suportar a tecnologia at-spi (Assistive Technology Service Provider Interface), o robô funcionará com ele diretamente através de seletores, assim como no ambiente Windows.

Funcionalidade dos robôs#

Existem algumas limitações relacionadas aos Blocos do Sherpa Designer disponíveis no ambiente Linux:

Categoria de Blocos Blocos não disponíveis no Linux
Automação de UI

ClickOnText

CopyToClipboard

PasteFromClipboard

CollectData

SelectOption

DragAndDrop

HighlightElement

ClearCache

ControlCache

GetGridData

Automação de Navegador

CopyToClipboardInternet

PasteFromClipboardInternet

HTTP

InternalBrowserRequest

GetYandexLinks

GetGoogleLinks

InternalAsyncBrowserGet

Automação SAP

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

Diálogos

ManLoop

MediaPlayer

Automação do Excel FindTextExcel
Automação do Outlook

GetOutlookMailMessages

SendOutlookMailMessage

ReSendOutlookMailMessage

SaveAttachmentsFromOutlookMessage

SaveMailFromOutlookMessage

GetOutlookFolders

MoveOutlookMessage

ExtractEmailFromOutlookMessage

LoadMsgFile

ReplyOutlookMailMessage

ChangePropertiesMailFromOutlookMessage

Área de Transferência

GetClipboard

SetClipboard

SetFilesClipboard

Processo/Serviço

ListServices

StartService

StopService

SetServiceStartupType

GetWindowState

SetWindowState

SetWindowLanguage

SetWindowPosition

AttachApplication

Automação de Terminal

TerminalConnectSession

TerminalCloseConnection

TerminalGetCursor

TerminalMoveCursor

TerminalGetTextPosition

TerminalGetFieldPosition

TerminalSetTextPosition

TerminalSetFieldPosition

TerminalGetField

TerminalSetField

TerminalGetScreenArea

TerminalSendKeys

TerminalSendControlKey

TerminalWaitTextPosition

TerminalWaitFieldPosition

TerminalGetFieldBetween

TerminalSetFieldBetween

Registro

ReadValueFromRegistry

WriteValueToRegistry

ListitemsFromRegistry

CreatePropertyInRegistry

RemovePropertyInRegistry

CreateHiveInRegistry

RemoveHiveInRegistry

Automação 1C

1CCreateConnection

1CCloseConnection

1CExecuteQuery

1CExecuteCode

1CCollectData

1CTableCellClick

1CCheckboxControl

RDP

RDPGenerateConnection

RDPCreateConnection

RDPConnectInstance

RDPCloseConnection

RDPDisconnectSession

RDPOperationFile

RDPRunScript

Credenciais do Windows

SetWindowsCredentials

GetWindowsCredentials

DeleteWindowsCredentials

GetCyberArkCredentials

Aprendizado de Máquina

RegressionTrain

RegressionPredict

ClassificationTrain

ClassificationPredict

ClusterTrain

ClusterPredict

AnomalydetectionTrain

AnomalydetectionPredict

AssistantGenerator

Algumas funções, como o modo PiP (imagem em imagem), que permite aos usuários assistir a vídeos ou outros materiais visuais em uma pequena janela que permanece sobre outros aplicativos ou janelas, não estão disponíveis no Linux, pois é uma tecnologia da Microsoft.

Template Engine no Linux#

Em sistemas Linux, o bloco Template Engine funciona completamente. No entanto, se for necessário alterar o arquivo de template, isso só pode ser feito em um ambiente Windows. Isso se deve ao fato de que o Template Engine para Linux ainda está em desenvolvimento. No momento, alguns editores, como Word e ferramentas especializadas para designers, utilizam funções de edição que estão temporariamente indisponíveis no Linux. Após fazer alterações no arquivo de template em um ambiente Windows, será necessário criar ou atualizar um arquivo JSON para refletir essas alterações no Template Engine para Linux. Depois disso, o arquivo JSON é carregado no sistema usando comandos ou APIs específicas para o seu ambiente.

Elementos da Página da Web#

Ao transferir robôs, podem surgir problemas com a execução de seletores em imagens, pois o robô não encontrará as imagens.

No Sherpa Designer, são utilizados quatro métodos de reconhecimento de imagem (campo "Tipo de Comparação"):

  • SQDIFF (Diferença Quadrática) - o método calcula a diferença quadrática entre os pixels de duas imagens. Quanto menor o valor, maior a semelhança entre as imagens;
  • CCORR (Correlação) - o método utiliza correlação para avaliar a semelhança entre as imagens. Produz os melhores resultados quando as imagens têm a mesma iluminação e contraste;
  • CCOEFF (Coeficiente de Correlação) - o método baseado no coeficiente de correlação mede o grau em que duas imagens podem ser comparadas, normalizando os resultados por suas médias;
  • NATIVE (padrão) - o método é pré-configurado e utilizado para comparações rápidas usando algoritmos integrados, baseados nas características da plataforma.

Se o método NATIVE não funcionar, recomenda-se usar SQDIFF, pois em sistemas semelhantes ao Linux não há um bitmap da imagem da janela disponível no Windows.

Também é importante que o local de gravação dos elementos de controle corresponda à resolução da tela e à profundidade de cores, caso contrário, as imagens podem ser escalonadas, e o robô não conseguirá encontrá-las.