- 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
Automação de Interface Gráfica
Algumas vezes, a rotina manual habitual não é a mais apropriada para a automação.Explore atentamente o comportamento e a integração/funcionalidades da UiPath antes de adotar uma certa abordagem.
A automação de interface gráfica é melhor utilizada quando robôs e aplicativos são executados na mesma máquina, pois o UiPath pode integrar-se diretamente à tecnologia usada pelo aplicativo para identificar elementos, disparar eventos e obter dados em segundo plano.
O UiPath utiliza três métodos para disparar uma atividade Click ou Type Into em um aplicativo.Eles são exibidos como propriedades em todas as atividades relacionadas com a automação de interface gráfica.
As propriedades SimulateType e SimulateClick
Se as propriedades SimulateType ou SimulateClick estiverem selecionadas, o Studio conecta-se ao aplicativo e dispara o gerenciador de eventos de um elemento de interface gráfica indicado (botão, caixa de texto).O resultado depende sempre da tecnologia usada no destino, como um navegador web ou aplicativo de negócios.
É altamente recomendado verificar o estado do elemento de interface gráfica de destino antes da execução, ao habilitar a SimulateType ou a SimulateClick para as seguintes atividades:
A mesma recomendação deve ser considerada para os aplicativos abaixo, pois eles usam as propriedades SimulateType ou SimulateClick por padrão e não podem ser alterados:
A propriedade AlterIfDisabled
A propriedade instrui se a atividade de destino deve ou não interagir com elementos desativados.Observe que essa propriedade é considerada apenas se a SimulateType ou a SimulateClick estiver habilitada.Você pode encontrar a propriedade AlterIfDisabled para as seguintes atividades:
A propriedade SendWindowMessages
Se a propriedade SendWindowMessages estiver selecionada, o Studio coloca os detalhes do evento no ciclo de mensagens do aplicativo e o procedimento da janela do aplicativo o envia internamente para o elemento de interface gráfica de destino.
O Studio sinaliza os drivers do sistema com eventos de hardware se nenhuma das opções acima estiver selecionada e permite que o sistema operacional envie os detalhes para o elemento de destino.
Esses métodos devem ser testados na ordem apresentada, pois as propriedades SimulateClick e SendWindowMessages são mais rápidas e também funcionam em segundo plano, mas dependem principalmente da tecnologia utilizada pelo aplicativo.
Os eventos de hardware funcionam 100% enquanto o Studio realiza ações exatamente como um operador humano, como mover o ponteiro do mouse e clicar em um local específico. No entanto, nesse caso, o aplicativo automatizado precisa estar visível na tela. Isso pode ser visto como uma desvantagem, pois há o risco de que o usuário interfira na automação.
Às vezes, os seletores gerados automaticamente propõem valores de atributo voláteis para identificar elementos e a intervenção manual é necessária para ajustar os seletores.Um seletor confiável deve identificar com sucesso o mesmo elemento todas as vezes, em todas as condições, em ambientes de desenvolvimento, teste e produção, independentemente dos nomes de usuários conectados aos aplicativos.
Aqui estão algumas dicas de como melhorar um seletor no Editor do Seletor ou Explorador de Interface Gráfica:
- Substitua atributos com valores voláteis por atributos que pareçam estáveis e significativos.
- Substitua partes variáveis de um valor de atributo que tenha caracteres curinga (*).
- Se o valor de um atributo for todo em caracteres curinga (por exemplo,
name=’*’
) o atributo deve ser removido. - Se a edição dos atributos não ajudar, tente adicionar mais contêineres intermediários.
-
Evite usar o atributo
idx
, a menos que seu valor seja um número muito pequeno, como 1 ou 2.
No seletor acima, observamos que o título da página tem uma referência ao momento em que o seletor foi gravado, e que alguns atributos têm IDs com aparência aleatória. Ajustando os atributos, podemos elaborar um seletor melhor do que o proposto pelo gravador do UiPath.
Assim como os caminhos dos arquivos, os seletores podem ser completos ou parciais (relativos). Os seletores completos começam com uma janela ou um identificador HTML e possuem todas as informações necessárias para encontrar um elemento em toda a área de trabalho, ao passo que os seletores parciais funcionam apenas em um anexo ou contêiner que especifique a janela de nível superior à qual os elementos pertencem:
- OpenBrowser
- OpenApplication
- AttachBrowser
- AttachWindow
Aqui está um pouco mais de informação sobre seletores completos versus parciais.
Há várias vantagens para usar contêineres com seletores parciais em vez de seletores completos:
- Agrupa visualmente atividades que funcionam no mesmo aplicativo.
- É um pouco mais rápido, não buscando sempre a janela superior.
- Facilita o gerenciamento de seletores de nível superior caso sejam necessárias atualizações manuais.
- É essencial ao trabalhar em duas instâncias do mesmo aplicativo.
O reconhecimento de imagem é a última estratégia na automação de aplicativos, se nada mais funcionar para identificar elementos de interface gráfica na tela (como seletores ou atalhos de teclado). Uma vez que a correspondência de imagem requer que os elementos estejam totalmente visíveis na tela e que todos os detalhes visíveis sejam os mesmos no tempo de execução e durante o desenvolvimento, deve-se ter um cuidado extra ao recorrer à automação de imagem para garantir a confiabilidade do processo. A seleção de uma área maior ou menor do que a necessária para uma imagem pode fazer com que a imagem não seja encontrada ou acarretar uma falsa correspondência.
A correspondência de imagem é sensível a variações de ambiente, como o tema da área de trabalho ou a resolução da tela. Quando o aplicativo for executado no Citrix, a resolução deve ser maior ou igual à usada na gravação dos fluxos de trabalho. Caso contrário, as pequenas distorções de imagem podem ser compensadas reduzindo-se um pouco o fator de Accuracy da imagem capturada. Verifique como o layout do aplicativo se ajusta a diferentes resoluções para garantir a proximidade dos elementos visuais, especialmente no caso de técnicas baseadas em coordenadas como clique relativo e extração relativa.
Se a automação for compatível com diferentes resoluções, gravações paralelas podem ser colocadas em uma atividade PickBranch e o robô utiliza qualquer uma das correspondências.
Se o OCR retornar bons resultados para o aplicativo, a automação de texto é uma boa alternativa para minimizar a influência do ambiente. O mecanismo Tesseract, usado pelo Google, funciona melhor para áreas menores, enquanto o Microsoft MODI é melhor para áreas maiores.
A utilização do mecanismo MODI nas automações em ciclo pode criar vazamentos de memória algumas vezes. Por isso é recomendado que a coleta feita com o MODI seja invocada por meio de um fluxo de trabalho separado, usando a propriedade Isolated.
É provável que ocorra um comportamento inesperado quando o aplicativo não estiver no estado em que o fluxo de trabalho supõe que ele esteja. O primeiro ponto a ser observado é o tempo que o aplicativo leva para responder às interações do robô.
A propriedade DelayMS permite que você aguarde um tempo para que o aplicativo responda. No entanto, há situações em que o estado de um aplicativo deve ser validado antes de prosseguir com determinadas etapas em um processo. As medidas podem incluir a utilização de atividades extras que aguardem o estado desejado do aplicativo antes de outras interações. As atividades que podem ajudar incluem:
Se uma automação for destinada a compartilhar a área de trabalho com um usuário humano, toda a interação de interface gráfica deve ser implementada em segundo plano. Isso significa que a automação deve funcionar diretamente com objetos do elemento de interface gráfica, permitindo que a janela do aplicativo fique oculta ou minimizada durante o processo.
- Use as opções SimulateType, SimulateClick e SendWindowMessages para navegação e entrada de dados pelas atividades Click e Type Into.
- Use as atividades Set Text, Check e Select Item para entrada de dados em segundo plano.
- As atividades Get Text, Get Full Text e WebScraping são as saídas que são executadas em segundo plano.
- Use a atividade Element Exists para verificar o estado do aplicativo.
Como executar a automação do Chrome/Edge/Firefox no PiP sem interromper seu trabalho na sessão principal
Ao executar a automação da web com os navegadores Chrome/Edge/Firefox na sessão filha de um modo PictureInPicture (PiP) e você quer continuar usando o navegador na sessão principal, saiba que tanto o Chrome quanto o Edge não podem ser inicializados simultaneamente, em diferentes sessões, enquanto usam o mesmo diretório de dados de usuário.
%LOCALAPPDATA%\Google\Chrome\User Data
. Os dados de perfis de seus navegadores são mantidos aqui, e cada novo perfil de navegador que você cria tem seu próprio espaço: histórico de navegação, marcadores e cookies.
chrome.exe --user-data-dir=c:\foo
. Todos os dados de seus perfis serão mantidos sob essa pasta personalizada.
Para ignorar essa limitação, as atividades Modern UseApplicationBrowser e Classic OpenBrowser fornecem uma solução pronta para usar: as propriedades ModoDaPastaDeDadosDoUsuário e CaminhoDaPastaDeDadosDoUsuário, que instruem a atividade sobre a inicialização do navegador com sua pasta padrão, aquela gerada automaticamente pela atividade ou uma personalizada, especificada pela última propriedade.
Vamos olhar mais de perto como essas propriedades funcionam.
Caso 1
Você não quer saber todos os detalhes sobre a pasta de dados do usuário; você simplesmente quer que a automação inicialize o navegador no PiP e faça seu trabalho, permitindo que você faça seu próprio trabalho na sessão principal. Então, basta deixar a UserDataFolderMode vazia. Seu valor padrão será herdado como Automático a partir da seção Configurações do projeto//ApplicationBrowser: o Robot criará automaticamente para você uma pasta/perfil de dados temporário para executar a automação no PiP.
Caso 2
Você quer executar a automação no PiP com a pasta de dados do usuário padrão, pois ela contém seu perfil padrão e todo o histórico de login e cookies de seus aplicativos de negócios. Defina UserDataFolderMode como DefaultFolder. Tenha em mente que simplesmente inicializar o navegador em sua sessão de trabalho não é possível até que a automação do PiP termine e/ou o navegador do PiP pare.
Caso 3
Você sabe o que você está fazendo e entende tanto a limitação do navegador quanto os recursos fornecidos pelo UiPath. Defina UserDataFolderMode como CustomFolder e defina UserDataFolderPath como um caminho à sua escolha.
Para todos os casos acima, recomendamos instalar a política de extensão por grupo. Dessa forma, a extensão estará disponível e ativada para qualquer perfil de navegador, independentemente de ele ter sido criado em pastas de dados do usuário padrão ou personalizadas.
- Automação da área de trabalho
- Métodos de entrada
- Seletores
- Contêineres
- Automação de imagem
- Considerações sobre resolução
- Mecanismos OCR
- Sincronização de interface gráfica
- Automação em segundo plano
- Como fazer
- Como executar a automação do Chrome/Edge/Firefox no PiP sem interromper seu trabalho na sessão principal