Delta Point
  • Blog
  • Inteligência Artificial
  • SRE & Engenharia do Caos
  • RPA
  • Desenvolvimento de Software
Sem resultado
Ver tudo
Delta Point
  • Blog
  • Inteligência Artificial
  • SRE & Engenharia do Caos
  • RPA
  • Desenvolvimento de Software
Sem resultado
Ver tudo
Delta Point
Sem resultado
Ver tudo
  • Picture of Samantha Gomes Samantha Gomes
  • fevereiro 7, 2023
  • RPA

RPA não encontra elementos na tela?

Soluções alternativas para quando não é possível obter um identificador único para elementos na tela em programas desktop

Conteúdo

Ao automatizar processos em um ambiente web, dependendo da estrutura do site, estão disponíveis diversos locators, que são caminhos para determinado elemento na página, como caixas de texto e botões. Por exemplo, esses identificadores podem ser o id, name, cssSelector ou até o caminho (xpath) para o elemento.

Para aplicações desktop no Windows, uma das formas de encontrar os localizadores é usando o programa Accessibility Insights. Nele são mostrados valores como nome, tipo de item, id, entre outros, que podem ser usados para detectar e interagir com as partes do programa. Porém, nesse ambiente os localizadores podem não estar disponíveis para fazer a automatização do processo. Então, o que fazer nesse cenário? Serão citados aqui alguns exemplos de soluções alternativas para quando não há acesso aos identificadores dos componentes em programas desktop.

Copiar e colar

O clipboard – ou a área de transferência – é muito útil quando é possível copiar o conteúdo da janela de um programa. Em algumas aplicações para desktop se pode copiar o texto que aparece em caixas de diálogo, por exemplo.

Assim, para verificar se uma sequência de passos produziu um resultado correto, basta copiar esse resultado, armazená-lo e o comparar com o que é esperado, e a partir daí executar as ações que dependem dessa informação.

Dessa forma, apenas se o conteúdo em si mudar é que a automação do processo deixará de funcionar, e alterações na disposição dos elementos não farão diferença.

Porém, nem sempre dá para copiar o que está visível na tela, mas existem outras opções para capturar o conteúdo apresentado, como demonstrado a seguir.

Use OCR

OCR é um acrônimo para Optical Character Recognition (em português, Reconhecimento Ótico de Caracteres). É uma tecnologia que possui a capacidade de extrair textos de imagens.

Imagine que existe uma janela com uma lista de itens, e o seu robô precisa clicar em um item específico dessa lista de acordo com o conteúdo dele. Porém, não é possível passar o nome ou o id, por exemplo, deste item da lista para o robô, porque não há identificador para ele.

Existem tecnologias para desenvolver RPA que possibilitam “ler” o conteúdo que está visível na tela. Como a Sikuli Library, uma biblioteca para o Robot Framework, que faz reconhecimento de imagens e textos. Usando essa biblioteca, é possível clicar diretamente no texto que se deseja, no caso, existe uma palavra-chave específica para isso, a “Click Text”, que vai buscar em toda a tela este texto, e clicar no local onde ele aparece.

Porém, existem alguns problemas com essa abordagem, como: o que acontece se o texto se repete? E se o estilo da fonte dificultar a leitura do mesmo? E dependendo da quantidade de conteúdo escrito e tamanho da fonte, pode haver um delay maior para que o texto seja encontrado.

Assim, para mitigar esses problemas, uma solução é limitar a área onde o texto será buscado. Isso pode ser feito definindo as coordenadas da região que o texto é esperado. Na biblioteca citada, também é possível ler o texto somente da área especificada. Isso pode ser útil para verificar se o resultado obtido de alguma ação é o mesmo do esperado.

Capture a tela e interaja com ela

A biblioteca que foi mencionada anteriormente, a Sikuli Library, tem a capacidade de reconhecer os componentes que estão visíveis na tela, ou seja, não somente textos, mas também imagens.

Para isso, é preciso guardar as imagens que representam os elementos no diretório em que a biblioteca irá buscá-los. Então, durante a execução do RPA, estas imagens serão comparadas com o que está sendo mostrado na tela no momento. Dessa forma, é possível armazenar o screenshot de um botão, e passar o nome desse arquivo como argumento para a keyword – ou palavra-chave – que o utilizará ao interagir com o botão, por exemplo.

Relembrando o exemplo do tópico anterior, onde o robô deveria clicar em um item de lista de acordo com o texto que está nele, o que aconteceria se houvesse muitos elementos nesta lista e fosse necessário descer a barra de rolagem para encontrar determinado elemento? Uma das possibilidades é utilizar essa tecnologia de reconhecimento de imagens para clicar e arrastar essa barra de rolagem, por exemplo. A medida que o conteúdo da tela muda, uma nova verificação é feita, a fim de se encontrar o item procurado.

Outro exemplo de uso pode ser verificar se a aplicação a ser automatizada já está aberta, assim o reconhecimento de imagens pode ajudar a examinar se o ícone está visível na barra de tarefas do sistema operacional, indicando assim, que não é necessário executar o programa novamente.

Como se pode ver, as aplicações dessa forma de interação com a tela são numerosas, apenas porém, cabe o cuidado com as mudanças que a interface gráfica pode apresentar. Identificar os elementos por imagens pode tornar a automatização sensível, visto que qualquer mudança na aparência desses componentes, pode impossibilitar o reconhecimento dos mesmos e “quebrar” o robô.

Pegue um atalho

Quando o objeto disponibiliza um atalho para acessá-lo, isso pode diminuir a complexidade do seu RPA. Como no caso de um dos passos do robô ser clicar em um item de um menu, em vez de usar o reconhecimento de imagens, por exemplo, onde seria necessário armazenar um screenshot do item, compará-lo como o menu na tela e então clicar no componente encontrado, seria mais interessante usar o atalho fornecido pelo próprio sistema a ser automatizado.

Essa abordagem pode tornar a execução do RPA mais rápida, visto que há menos passos para produzir o resultado que também poderia ser alcançado das outras formas exploradas no texto.

Qual abordagem escolher?

Como se pode ver, há diversas formas de lidar com a ausência de identificadores para os itens em janelas de programas. Assim, o que é necessário fazer é analisar as limitações do processo que está sendo automatizado, para então escolher uma forma de interagir com a tela. Geralmente, a solução envolve usar mais de uma das abordagens mostradas.

Para saber mais sobre automação de processos robóticos, você pode ler o artigo anterior: RPA é lindo e funciona! Mas e quando dá erro?

Samantha Gomes

Samantha Gomes

Sou estudante de Tecnologia em Análise e Desenvolvimento de Sistemas no IFG e Desenvolvedora RPA na Deltapoint. Meus interesses são automação e desenvolvimento de software, além de compartilhar conhecimento!

Relacionados Posts

RPA

Como a automação pode gerar valor na vida das pessoas

24/04/2023
RPA

RPA é lindo e funciona! Mas e quando dá erro?

24/04/2023
Anterior

RPA é lindo e funciona! Mas e quando dá erro?

Próximo

O que é uma StartUp?

Próximo

O que é uma StartUp?

Construímos o Sizify – A única plataforma que integra software e serviços que garante planejamento , produtividade , controle, qualidade e segurança. 

Cadastre-se em nossa newsletter
  • © 2025 Deltapoint
  • Web Designer e Criação de Sites
  • Blog
  • Inteligência Artificial
  • SRE & Engenharia do Caos
  • RPA
  • Desenvolvimento de Software
  • Blog
  • Inteligência Artificial
  • SRE & Engenharia do Caos
  • RPA
  • Desenvolvimento de Software
  • Blog
  • Inteligência Artificial
  • SRE & Engenharia do Caos
  • RPA
  • Desenvolvimento de Software
  • Blog
  • Inteligência Artificial
  • SRE & Engenharia do Caos
  • RPA
  • Desenvolvimento de Software
Sem resultado
Ver tudo
  • Blog
  • Inteligência Artificial
  • SRE & Engenharia do Caos
  • RPA
  • Desenvolvimento de Software

© 2022

Este site usa cookies. Ao continuar a usar este site, você concorda com o uso de cookies. Visite nossa Política de Privacidade e Cookies.