- Notas de Versão
- Introdução
- Configuração e Instalação
- Projetos de automação
- Dependências
- Tipos de fluxos de trabalho
- Comparação de arquivos
- Melhores Práticas de Automação
- Integração de controle de origem
- Depuração
- A ferramenta de diagnóstico
- Analisador de Fluxo de Trabalho
- Sobre o Analisador de Fluxo de Trabalho
- STN MG-001 - Convenção de nomenclatura de variáveis
- STN MG-002 - Convenção de nomenclatura de argumentos
- STN MG-004 - Duplicação de Nome de Exibição
- STN MG-005 - Variável substitui variável
- STN MG-006 - Variável substitui argumento
- STN MG-008 - Comprimento de variável excedido
- STN MG-009 - Variáveis Catablema de prefixo
- STN MG-011 - Argumentos Catablema de prefixo
- STN MG-012 - Valores padrão de argumentos
- STN MG-016 - Comprimento do argumento excedido
- SR-DB-002 - Contagem alta de argumentos
- SR-DB-003 - Esvaziar bloco catechu
- SR-DB-007 - Múltiplas camadas Com fluxograma
- SR-DB-020 - Propriedades de saída indefinidas
- SR-DB-023 - Fluxo de trabalho vazio
- SR-DB-024 - Verificação da atividade Persistente
- SR-DB-025 - Pré-requisito de serialidade de variáveis
- SR-DB-026 - Uso da atividade Dela
- SR-DB-027 - Melhores práticas de persistência
- SR-DB-028 - Pré-requisito de serialidade de argumentos
- SR-US-005 - Argumentos de atividades embutidos em código
- SR-US-009 - Variáveis não utilizadas
- SR-US-010 - Dependências não utilizadas
- SR-US-014 - Restrições de pacotes
- SR-US-020 - Mensagens de logue mínimas
- SR-US-024 - Não utilizado e postergado
- SR-US-025 - Uso incorreto do valor salvo
- SR-US-026 - Restrições da atividade
- SR-US-027 - Pacotes necessários
- ST-USG-28 — restringir modelos de invocação de arquivos
- Variáveis
- Argumentos
- Namespaces Importados
- Gravação
- Elementos de Interface Gráfica
- Fluxo de controle
- Seletores
- Repo. de Objetos
- Extração de Dados
- Automação de imagem e texto
- Automação de tecnologias Citrino
- Automação RDP
- Automação da Salesforce
- Automação SAP
- Automação do Varear Horizonte
- Geração de logs
- A ferramenta ScreenScrapeJavaSupport
- O protocolo Servodrive
- Test Suite — Studio
- Extensões
- Solução de problemas
- Sobre a solução de problemas
- Suporte e limitações do Microsoft Apo-V
- Solução de problemas do Internet Explorer x64
- Problemas do Microsoft Office
- Como identificar elementos de EU em PDF com opções de acessibilidade
- Reparando o suporte da Active Accessibility
- Solução de problemas de aplicativos do JxBrowser
- Monitoração de eventos de usuário
- Solução de problemas da Citrix
- Automação de aplicativos em execução com um usuário diferente do Windows
Extensão para Java
A Extensão Java é compatível com qualquer versão do JRE, do Java 3 ao Java 17.
Ao tentar indicar ou validar seletores em um aplicativo Java, o robô verifica se os arquivos de extensão estão carregados no processo do aplicativo de destino.
Os arquivos podem existir lá por meio de vários mecanismos:
- tendo a extensão instalada no JRE (para Java 3 a 8) por meio do mecanismo de extensão.
- carregando-os a partir de uma pasta personalizada (para Java 3 a 17, com diferentes etapas a seguir para Java 9+).
Se os arquivos de extensão não estiverem lá, um mecanismo de injeção é usado para tentar iniciar nossa ponte.
O instalador de extensão Java incorporado no Studio (e também a ferramenta ScreenScrapeJavaSupport) depende do mecanismo de extensão para que a extensão seja carregada pelo JRE, para que possa ser usada para automatizar aplicativos baseados em Java executando com Java 3 a 8.
A partir do Java 9, o mecanismo de extensão foi descontinuado, e o instalador não consegue incluir os arquivos necessários no JRE. Esses arquivos devem ser carregados a partir de uma pasta personalizada (mais informações aqui).
A partir do pacote UIAutomation versão 22.2.0-preview, com o suporte do mecanismo de injeção padrão, não é mais obrigatório instalar a Extensão para Java para automatizar aplicativos baseados em Java.
Você deve instalar a extensão Java a partir do Studio ou da linha de comando somente quando o mecanismo de injeção não funcionar e quando os aplicativos Java estiverem usando Java 3 a 8. Para aplicativos Java usando Java 9 ou superior, siga as etapas descritas em Instalação da extensão em uma pasta personalizada.
Até a versão 22.2.0-preview do UiPath.UIAutomation.Activities, o mecanismo de injeção não funcionava em todos os casos. Carregar a extensão a partir de uma pasta personalizada era o principal método usado para aplicativos lançados com Java 9+.
.jnlp
lançados com aplicativos de terceiros, como OWS ou IcedTea Web.
O mecanismo de injeção é usado por padrão e a instalação da extensão Java deve ser usada apenas como um método de backup.
A extensão UiPath para Java é instalada da seguinte forma:
Do Studio
- Feche todos os aplicativos Java em execução.
- Abra o Studio.
- Navegue até Ferramentas > UiPath Extensions.
- Selecione Java > Instalar. Uma mensagem de confirmação aparece, informando que a extensão foi instalada.
A partir da Linha de comando
C:\Program Files\UiPath\Studio\UiPath\SetupExtensions.exe /Java
em uma janela de prompt de comando com direitos de administrador.
O Studio e o UI Explorer também pedem para instalar a Extensão UiPath para Java quando você tentar selecionar um controle dentro de um aplicativo Java e quando a ponte não é detectada. Se você optar por instalar a extensão UiPath para Java quando solicitado pelo UI Explorer, os arquivos do Java Bridge serão implantados apenas no diretório JRE que lançou o aplicativo Java de destino, em vez do diretório JDK.
Para verificar se a extensão não está funcionando corretamente, abra o UI Explorer e tente selecionar controles dentro de um aplicativo Java. Se a janela inteira estiver selecionada, significa que a extensão não está funcionando corretamente.
Você pode dizer se a extensão está instalada corretamente ou não pelos seletores gerados para controles Java:
- Seletor válido para controles Java:
<wnd app=”...” /><java role=”...” />
- Seletor Inválido para controles Java:
<wnd app=”...” /><ctrl role=”client” />
cls
(nome de classe de janela) no UI Explorer. O nome da classe deve ser semelhante a SunAwtFrame
ou javax.swing
.
Os processos podem interagir com aplicativos Java independentemente de sua escala de DPI.
A Extensão UiPath para Java também pode ser instalada usando a ferramenta ScreenScrapeJavaSupport.
Para ter a extensão UiPath para Java instalada em um local personalizado, execute as seguintes etapas:
-
Crie uma nova pasta na sua máquina na qual você deseja instalar a Extensão UiPath para Java (como
C:\UiPathJavaExt
) e copie os seguintes arquivos para ela:UiPathBridge.jar
- localizado no diretório%UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath\JavaSupport
.UiPathJavaBridgeV8.dll
eUiPathJavaBridgeV8_x64.dll
localizados no diretório%UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath
. Não é necessário copiar ambos os arquivos, mas pode evitar problemas que podem ocorrer devido à incompatibilidade de versões entre o JRE e o UiPathJavaBridge.
-
O mecanismo de Configuração de Extensão do Java usado pelo UiPath para instalar a extensão implanta os arquivos
UiPathBridge.jar
eaccessibility.properties
no diretório de instalação do Java (geralmenteC:\Program Files (x86)\Java\jre1.8.0_xx
). Para usar a Extensão UiPath para Java a partir de uma pasta personalizada, a dependência para esses arquivos deve ser atenuada da seguinte maneira:- Para o arquivo
UiPathBridge.jar
, você precisa especificar a pasta na qual você copiouUiPathBridge.jar
eUiPathJavaBridgev8.dll
(comoC:\UiPathJavaExt
) quando você iniciar o aplicativo Java que usa a extensão. Isso é feito por meio do argumento-Djava.ext.dirs = C:\UiPathJavaExt
. -
Para o arquivo
accessibility.properties
, há dois métodos:- Adicione o parâmetro
assistive_technologies=UiPath.UiPathBridge
ao arquivo de configuração globalaccessibility.properties
localizado no diretório%userprofile%
. Observe que esse arquivo é diferente daquele implantado pela Extensão UiPath para Java, e suas configurações têm precedência sobre as que estão definidas pela instalação Java. - Use o argumento
-Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge
quando você executar o aplicativo Java de destino.
- Adicione o parâmetro
- Para o arquivo
As propriedades do sistema precisam ser passadas corretamente para o aplicativo Java de destino. Isso pode ser feito por meio de vários métodos:
- Inclua a propriedade
-Djava.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge
do sistema na variável de ambiente_JAVA_OPTIONS
. O JRE carrega as propriedades da variável de ambiente e da Extensão do UiPath para Java carregada no aplicativo de destino. - Use o comando
C:\Program Files (x86)\Java\jre1.8.0_xx\bin\java.exe -Djavax.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge -jar SwingSet2.jar
dentro do prompt de comando. Uma mensagem de confirmação aparece indicando que a Extensão do UiPath para Java foi carregada com sucesso. - Inclua a propriedade
-Djava.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge
do sistema na variável de ambienteJAVA_TOOL_OPTIONS
. Observe que esse método funciona apenas com o Java 5 ou posterior.
A passagem de propriedades para um applet Java é feita com um dos seguintes métodos:
-
Usando a aplicação
appletviewer.exe
.Este método requer que você crie primeiro o arquivo.java.policy
na pasta%userprofile%
e deve conter o seguinte:grant { permission java.net.URLPermission "url_of_the_Java_applet", "<em>:</em>"; };
grant { permission java.net.URLPermission "url_of_the_Java_applet", "<em>:</em>"; };Após essa conclusão, o applet de destino precisa ser iniciado por meio deappletviewer.exe
com este comando:C:\Program Files (x86)\Java\jre1.8.0_xx\bin\appletviewer.exe -J-Djava.ext.dirs=C:\UiPathJavaExt -J-Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge url_of_the_java_applet
-
Usando o Painel de controle do Java que é entregue com o JRE.
O Painel de controle Java permite que você especifique os parâmetros de runtime para cada JRE. Dessa forma, é necessário que você especifique o
-Djava.ext.dirs=C:\UiPathJavaExt -Djavax.accessibility.assistive_technologies=UiPath.UiPathBridge
parâmetro do miniaplicativo de destino. Isso faz com que a Extensão UiPath para Java seja carregada sempre que o applet Java for iniciado.
A tabela abaixo apresenta a compatibilidade entre os métodos usados acima, versões Java e diferentes tipos de aplicativos Java:
Tipo de Aplicativo |
_JAVA_OPTIONS |
JAVA_TOOL_OPTIONS |
Parâmetros de Linha de Comando |
Painel de controle Java - Parâmetros de Runtime |
---|---|---|---|---|
Aplicativo para Computadores do Java |
Java 3 para Java 8 |
Java 5 para Java 8 |
Java 3 para Java 8 |
Não Compatível |
Aplicativo Contido do Java (
.exe )
|
Java 3 para Java 8 |
Java 5 para Java 8 |
Java 3 para Java 8 (
1 )
|
Não Compatível |
Applet Java |
Java 3 para Java 8 |
Java 5 para Java 8 |
Não Compatível |
Java 3 para Java 8 |
Formulários do Oracle Java |
Não Compatível |
Não Compatível |
Não Compatível |
Não Compatível |
1
) - Dependendo da ferramenta de linha de comando que você usar, os parâmetros adicionais podem ser passados por meio das variáveis de ambiente.
-Djava.ext.dirs
não pode ser usado em aplicativos com Java 9 e superiores.
A ideia principal por trás do carregamento da extensão pode ser dividida em 3 requisitos:
- Adicione o
UiPathBridge.jar
eUiPathServiceProvider.jar
ao classpath do aplicativo. -
Torne
UiPathJavaBridgeV8.dll
eUiPathJavaBridgeV8_x64
visíveis paraUiPathBrdige.jar
. Isso pode ser feito de diversas maneiras:- colocar os arquivos na mesma pasta com
UiPathBridge.jar
; - colocar os arquivos na pasta acima
UiPathBridge.jar
; -
adicionar os dois arquivos a uma pasta e referenciar seu caminho por meio de uma variável de ambiente chamada
UIPATH_JB_PATH
;Não é necessário fazer referência a ambos os arquivos, mas isso pode evitar problemas que podem ocorrer devido à diferença de versão entre JRE e o UiPath Java Bridge.
- colocar os arquivos na mesma pasta com
- Configure o aplicativo para carregar a tecnologia adaptativa. Isso é feito através do arquivo
accessibility.properties
, que é colocado dentro dos JREs.Observação: o arquivoUiPathJavaServiceProvider.jar
está disponível nos pacotes mais recentes do UiPath.UIAutomation.Activities (mais recentes que o 21.2-preview). Se você estiver usando uma versão inferior do UIAutomation, o arquivo pode ser obtido atualizando temporariamente um arquivo de fluxo de trabalho vazio para a versão 21.2-preview. Isso gera a desempacotamento de uma versão mais recente do pacoteUiPath.nuget
na máquina do usuário (%UserProfile%\.nuget\packages\uipath
). Após obter o arquivo, pode ser feito o downgrade no pacote para a versão usada antes da atualização.
Atender aos requisitos acima depende diretamente da forma como o aplicativo Java é iniciado. Há 3 maneiras comuns de iniciar o aplicativo e carregar a extensão.
Aplicativos iniciados a partir de arquivos .jar
, .bat
, ou .ps1
.jar
simples: java -jar SwingSet2.jar
As seguintes etapas precisam ser realizadas:
- Crie uma nova pasta na sua máquina na qual você deseja instalar a Extensão UiPath para Java (como
C:\UiPathJavaExt
) e copie os seguintes arquivos para ela:UiPathBridge.jar
eUiPathJavaServiceProvider.jar
- localizados no diretório%UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath\JavaSupport
.UiPathJavaBridgeV8.dll
eUiPathJavaBridgeV8_x64.dll
- localizados no diretório%UserProfile%\.nuget\packages\uipath\20.xx.xxxx\build\UiPath
.
- Adicione a pasta criada anteriormente ao classpath do aplicativo Java de destino. Isso é feito com o comando
-cp, -classpath
. Para esse exemplo, consideramosSwingSet2
como o aplicativo Java de destino:C:\Program Files (x86)\Java\jre1.9.0_xx \bin\java.exe -cp SwingSet2.jar;C:\UiPathJavaExt\* -Djavax.accessibility.assistive_technologies=UiPathJavaServiceProvider SwingSet2
.bat
ou .ps1
, então o arquivo deve ser analisado com um editor de texto. O arquivo que inicia o aplicativo contém uma linha semelhante ao comando java -jar SwingSet2.jar
, mas também inclui muitos outros parâmetros. O comando pode ser alterado para incluir os arquivos no classpath e especificar o parâmetro da tecnologia adaptativa. Alterações dentro desses arquivos devem ser feitas com cuidado. Em alguns casos, o classpath e os parâmetros adicionais são escolhidos de variáveis de ambiente, que é um método menos invasivo.
Aplicativos iniciados de arquivos .exe
exe
você deve encontrar uma maneira alternativa de carregar os arquivos para o classpath e especificar o parâmetro da tecnologia adaptativa.
- Para carregar os arquivos do classpath, você pode pesquisar por variáveis de ambiente que são lidas pelo executável, ou por arquivos de configuração que especificam onde as dependências são carregadas. Não há nada que seja padrão aqui, e depende muito do nível de personalização do executável.
- A tecnologia adaptativa pode ser especificada neste caso de maneira similar àquela usada pelo instalador de extensão. O arquivo padrão
accessibility.properties
, pode ser movido para a pasta%UserProfile%
e renomeado para.accessbility.properties
.
Aplicativos iniciados de arquivos .jnlp
.jnlp
tipo é feita por padrão devido a uma atualização do mecanismo de injeção existente.
O dimensionamento tem suporte total em aplicativos Java 9+ através de parâmetros. Considere adicionar os parâmetros a seguir ao aplicativo Java que deseja automatizar, a fim de habilitar o suporte ao dimensionamento:
sun.java2d.uiScale.enabled
─ Quando não utilizado ou definido como o valor exato da string de "true", ele será considerado como verdadeiro e a seguinte configuração de dimensionamento será levada em consideração. Quando definido com qualquer outro valor, mas "true" (tais como True, false, False, abc), então ele será considerado como falso e não serão feitos ajustes de dimensionamento adicionais.-
sun.java2d.uiScale
- Os valores podem ser passados em três formas:- Como um índice (0,5, 2,3, 1,5)
- Como porcentagens (100%, 150%)
- Como valores de dpi (96 dpi, 120 dpi). O valor será considerado se o dimensionamento estiver habilitado. Ele modifica o dimensionamento em ambos os eixos.
sun.java2d.win.uiScaleX, sun.java2d.win.uiScaleY
Os valores podem ser passados quando ao parâmetrosun.java2d.uiScale
. Ambos são necessários para serem considerados pelo aplicativo Java. Eles são mais específicos do que a configuração geral do dimensionamento. Como tal, se todos os três parâmetros estiverem definidos, somente esses serão considerados.