studio
2023.10
false
Guia do usuário do Studio
Last updated 23 de set de 2024

Automação de Interface Gráfica

Importante: os processos de automação que usam atividades UIAutomation não podem ser executados com uma tela bloqueada.

Algumas vezes, a rotina manual habitual não é a mais apropriada para a automação.Explore atentamente o comportamento do aplicativo e a integração e as funcionalidades do UiPath® antes de confirmar uma determinada abordagem.

Observação: não há suporte para o uso da atividade paralela com as atividades de automação da interface gráfica e geralmente resultará em consequências imprevistas.

Automação da área de trabalho

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.

Métodos de entrada

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.

Seletores

À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.



Contêineres

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.

Automação de imagem

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.

Considerações sobre resolução

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.

Mecanismos OCR

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.

Sincronização de interface gráfica

É 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:

Automação em segundo plano

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 fazer

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.

A pasta padrão é criada pelo navegador, em sua primeira inicialização. No Windows, o local da pasta padrão é %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.
Se, como usuário, por qualquer motivo específico, você optar por iniciar o navegador com sua própria pasta de dados personalizada, você pode fazer isso ao inicializar o navegador com o seguinte comando: 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.

Esta página foi útil?

Obtenha a ajuda que você precisa
Aprendendo RPA - Cursos de automação
Fórum da comunidade da Uipath
Uipath Logo White
Confiança e segurança
© 2005-2024 UiPath. Todos os direitos reservados.