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.