Não categorizado

Erros comuns nos primeiros passos com Python RPA

Dar os primeiros passos para aprender novas tecnologias tem seus desafios, mas também nos faz evoluir profissionalmente. Durante esse aprendizado é bastante comum cometermos alguns erros. E, por mais que seja clichê, é importante ressaltarmos que errar faz parte. 

Isso porque são os erros que dão uma entrada ainda maior ao processo de aprendizado. Então, vamos discutir como lidar com alguns erros comuns entre pessoas desenvolvedoras RPA, entender porque estão acontecendo e até mesmo tentar evitá-los em suas automações.

Erros comuns em RPA além da implementação

Durante o processo de organização para orquestrar projetos de automação RPA, é necessário tomar cuidado com alguns erros. Apesar de ser parte do dia-a-dia, muitos desses erros podem comprometer o sucesso da execução das tarefas automatizadas. Erros também fazem parte dos riscos e, ainda que alguns deles estejam previstos ou sejam aceitos, outros nem tanto.

Erros também podem ir muito além da implementação do código do seu robô. Eles podem ter nascido antes, durante o mapeamento de processo, por exemplo. Além de mapear os caminhos de sucesso, também é importante mapear as etapas que podem dar errado e como lidar com esses passos. A automação precisa estar preparada para isso.

Também podem ocorrer erros durante esse mapeamento no momento de entender o que pode ser melhorado e se o processo, de fato, vale a pena ser automatizado.

Outro erro comum é subestimar os requisitos de segurança de informação. Por exemplo, não se deve esquecer de entender quais são os sistemas que o bot deverá acessar e quais são os acessos que precisará para isso. Ter isso bem mapeado e as credenciais liberadas de maneira segura pode evitar diversos problemas.

A prática de Shadow IT, quando sistemas e metodologias não autorizados e combinados com outras pessoas envolvidas no projeto de automação, também pode causar muitos erros. Mas agora vamos focar em outros tipos de erros: os que envolvem o processo de aprendizado durante seus primeiros passos no desenvolvimento de uma automação com Python RPA. Acompanhe os próximos tópicos.

8 erros comuns no primeiro desenvolvimento 

Agora, vamos explorar alguns erros comuns no desenvolvimento de automações em Python RPA, especificamente com o framework da BotCity. 

1. Erro ‘ModuleNotFoundError’ ou ‘No module named botcity’ ao executar o projeto

Isso significa que você acabou pulando a etapa de instalação do bot ou então você fez essa etapa, mas possivelmente em ambiente diferente do que está utilizando para execução.

Para solucionar, execute o seguinte comando no terminal:

pip install --upgrade -r requirements.txt

Isso precisa ser feito, pois neste arquivo estão todas dependências externas do projeto. Essa etapa deve ser feita tanto para o BotCity Framework Desktop quanto para o BotCity Framework Web. Você pode conferir mais orientações na documentação sobre instalação de dependências.

Importante: se você utiliza ambientes virtuais para executar o seu projeto, lembre-se de confirmar em qual ambiente você está e qual é a versão do Python. Isso também evitará alguns erros.

2. Erro “No such file or directory: ‘requirements.txt’’

Esse erro pode acontecer caso você esteja tentando corrigir o anterior. É possível que você tenha executado o comando orientado no item sobre o erro “’ModuleNotFoundError” dentro da pasta errada do projeto. Verifique em seu terminal a pasta em que você está ou ajuste o acesso ao arquivo pelo comando.

3. Erro ‘OSError: [WinError 216]’

Neste erro, a mensagem completa pode ser parecido com “OSError: [WinError 216] This version of %1 is not compatible with the version of Windows you’re running. Check your computer’s system information and then contact the software publisher”. 

E o cenário normalmente é este: você está configurando um webdriver em seu código para o seu bot web e, no caso, escolheu o browser Firefox.

# Setando navegador padrão para o Firefox
bot.browser = Browser.FIREFOX


# Setando o caminho do Geckodriver
bot.driver_path = "<caminho para o WebDriver>"

Para fazer a configuração desse webdriver, costumamos fazer o download pela página de releases do geckodriver. E então, identificamos o webdriver correto para o nosso sistema operacional, escolhendo um dos itens na parte de assets para download:

Print da área de assets do link mencionado acima mostrando as diferentes versões do driver para cada sistema.

É importante escolher com atenção, porque é comum haver confusão quando usamos, por exemplo, o sistema operacional Windows 64 bits e acabamos tentando configurar o geckodriver-vX.YY.Z-win-aarch64.zip, quando na verdade devemos baixar o geckodriver-vX.YY.Z-win64.zip.

Ao configurar o geckodriver com a versão correta, torna-se novamente possível abrir o navegador através do seu código.

4. Incompatibilidade do driver com o navegador

É importante também confirmar a versão do navegador que você vai utilizar e validar que o webdriver é compatível com essa versão. Utilizando novamente o Firefox como exemplo, você pode entender observando a versão ao clicar no Menu > Ajuda > Sobre o Firefox.

Print da janela "sobre o Firefox" mostrando algumas informações sobre o navegador, uma delas a versão.

Ao validar a versão do seu navegador ou do navegador que será utilizado na sua automação, verifique nas informações de release do webdriver selecionado se ele é compatível com essa versão que você vai utilizar.

No exemplo que utilizamos, observamos que a versão do Firefox que eu vou utilizar na automação é 114.0.2 e na release consta a informação que a versão mínima requerida é a 113.0:

Print do texto "Note that the minimum required Firefox version is 113.0"

Ou seja, nesse caso, eu conseguiria utilizar normalmente esse mesmo geckodriver na minha automação, visto que é compatível.

5. Quando os sistemas barram a utilização por identificar um robô

Em casos assim, pode ser possível tentar humanizar o processo. O que isso significa? Você pode tentar fazer movimentações com o mouse na tela, como uma pessoa poderia fazer. Ou ainda ajustar a digitação para que não seja um conteúdo diretamente colado no campo a ser preenchido.

Esse tipo de problema costuma acontecer mais em projetos de automações Web. Mas para “humanizar” a execução, você pode recorrer a alguns recursos do framework desktop da BotCity, essa pode ser uma boa alternativa. Abaixo, seguem os exemplos dos comandos que você pode utilizar:

  • Sobre a digitação, você pode usar o seguinte comando do framework BotCity (veja mais exemplos em nossa documentação):
bot.kb_type("Coloque seu texto aqui.")
  • Sobre a movimentação do cursor do mouse, você pode usar os seguintes comandos do framework BotCity (veja mais exemplos em nossa documentação):
bot.mouse_move(x=100, y=200) # x e y são coordenadas

6. Quando a execução do robô é muito mais rápida que os sistemas que está acessando

Como estamos criando automações para serem executadas com código, esse tempo de execução pode ser muito mais rápido que o esperado ou que os sistemas que estamos interagindo conseguem lidar.

E por causa disso, erros de execução podem acontecer, porque determinada etapa na tela ainda não finalizou para que o próximo passo aconteça dentro do processo.

Em ocasiões assim, talvez faça sentido avaliar a possibilidade de colocar pausas entre algumas dessas etapas.

Uma forma de fazer isso com o nosso framework da BotCity seria (veja outros exemplos na documentação):

# Aguardar por cinco segundos
bot.wait(5000)

Além disso, você também pode criar lógicas ou regras em seu código para garantir que o robô está na tela certa antes de executar determinado comando. Uma das formas de fazer isso, seria utilizar a visão computacional e buscar por alguma âncora na tela que deveria estar aberta e em uso.

7. Erro na precisão ao encontrar elementos na tela

Esse problema pode acontecer por alguns motivos:

  • Você desenvolveu o robô em um ambiente diferente do que será executado em produção;
  • A resolução da tela alterou.

Para amenizar ou evitar que esse problema continue acontecendo:

  • Tente possibilitar que você faça o desenvolvimento da automação em ambiente e resolução o mais próximo possível de como será executado em produção;
  • Outra saída é fazer um ajuste em relação a acurácia do algoritmo de visão computacional no código gerado.

Veja no exemplo do código a seguir gerado pela visão computacional:

    if not bot.find("window", matching=0.97, waiting_time=10000):
        not_found("window")

    bot.click_relative(221, 206)

O parâmetro matching costuma estar com o valor máximo 0.97. Esse valor poderia ser ajustado a, no mínimo, 0.90. Isso pode ajudar nas questões levantadas neste tópico. Mas cuidado para não diminuir muito mais que isso, a ponto do algoritmo perder a sua eficiência para encontrar o elemento que precisa ser identificado.

8. Erro “unable to find valid certification path to requested target” 

Este erro ao executar o BotCity Studio pode acontecer em seu ambiente caso existam bloqueios configurados de certificados. Uma das saídas é fazer o seguinte passo-a-passo:

  • Abra a pasta do SDK. No wizard isso pode ser feito clicando em “Open SDK folder”;
  • Acesse a pasta chamada conf e abra o arquivo conf.bcf em modo de edição (você pode fazer isso, abrindo com o bloco de notas, por exemplo);
  • Adicione a linha ignoreSSL=true e não esqueça de salvar essa alteração no arquivo conf.bcf;
  • Reinicie o BotCity Studio e o problema deve estar resolvido.

💡 Saiba mais em: FAQ BotCity.

Você já passou por algum outro erro em RPA?

Compartilhe nos comentários e vamos trocar experiências. Ou ainda, participe da nossa comunidade para troca de dores e conhecimentos sobre o universo da automação RPA. Para participar da nossa comunidade global de RPA, é só entrar no nosso Slack ou ainda entrar em contato pelo nosso fórum

Qualquer dúvida, só chamar a gente! E não esqueça de criar a sua conta gratuita para testar as funcionalidades que estamos explorando em nossos conteúdos.

BotCity Cofounder and CEO

Deixe uma resposta

Descubra mais sobre Blog BotCity - Conteúdo para Automação e Governança

Assine agora mesmo para continuar lendo e ter acesso ao arquivo completo.

Continue reading