DEV Community

Cover image for Sites para praticar RPA
Bruna Ferreira for BotCity

Posted on • Edited on

Sites para praticar RPA

Para esse artigo você precisa ter:

  • Conhecimento básico de programação
  • Conhecimento básico da biblioteca Selenium

Qualquer dúvida, comente!


Robotic Process Automation (RPA) visa implementar soluções com automação robótica de processos para livrar pessoas de trabalhos repetitivos, trazendo mais agilidade e segurança para os negócios. Esses processos podem acontecer interagindo com aplicativos de computador como sistemas Customer Relationship Management (CRM), Enterprise Resource Planning (ERP) ou mesmo navegadores web, acessando portais comumente utilizados pelas organizações.

Quando entramos no contexto de RPA, temos diversas ferramentas diferentes para atender nossas demandas, sendo elas plataformas “no-code” ou “low-code” e ainda existe a possibilidade de utilizar código em alguma linguagem de programação para criar sua automação. Nesse artigo eu apresento um site para praticar suas automações do tipo Web, utilizando código Python e interagindo com navegadores diretamente com o Document Object Model (DOM) das páginas.

Uma das formas de melhorar a habilidade de programar é praticando. Dentro da área de RPA não é diferente, precisamos aprender sobre como os processos funcionam e assim conseguir desenvolver um programa capaz de executar todos os passos necessários para realizar a tarefa proposta com sucesso.

Practice Test Automation

Nesse site temos opções de fazer testes com nossa automação em contextos como:

  • Test Login Page: preenchendo o login da página utilizando as credenciais disponíveis, podendo testar casos de login válido ou inválido
  • Test Exceptions: tratamento de exceções mais comuns com base na ferramenta Selenium.

Abordando o primeiro caso, temos a possibilidade de preencher dois campos de texto, referentes a username e password e clicar um botão submit. Dependendo de como os campos foram preenchidos, teremos como respostas diferentes ao clicar no botão. A partir dessas respostas poderemos avaliar se a automação está passando pelas etapas corretas.

Como fica em código?

É importante verificar se todas as dependências necessárias estão instaladas na máquina para executar o código.

Para esse projeto utilizaremos as seguintes bibliotecas, nas versões fixadas:

selenium==4.10.0 webdriver-manager==3.8.5 
Enter fullscreen mode Exit fullscreen mode

O comando de instalação no terminal fica dessa forma:

python -m pip install selenium==4.10.0 webdriver-manager==3.8.5 
Enter fullscreen mode Exit fullscreen mode

Criaremos um arquivo python com o nome de bot.py, nele descreveremos os passos para preencher o formulário em forma de instruções.

from time import sleep from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.firefox.service import Service def main(): try: # Define o caminho do WebDriver executável do Firefox  service = Service(executable_path=r"geckodriver.exe") # Cria uma instância do Navegador  bot = webdriver.Firefox(service=service) # Define a URL da página Practice Test Automation na área de login  url = "https://practicetestautomation.com/practice-test-login/" # Acessa página definida  bot.get(url) # Busca pelo elemento input de nome de usuário  elemento_campo_usuario = bot.find_element( by=By.ID, value="username" ) # Ação de digitar no elemento  elemento_campo_usuario.send_keys("student") # Busca pelo elemento input de senha  elemento_campo_senha = bot.find_element( by=By.ID, value="password" ) # Ação de digitar no elemento  elemento_campo_senha.send_keys("Password123") # Busca pelo elemento botão submit  elemento_botao = bot.find_element( by=By.ID, value="submit" ) # Ação de clicar  elemento_botao.click() # Aguarda 3 segundos para garantir  # que carregou a página com resultado  sleep(3) # Busca pela confirmação de login  elemento_logado = bot.find_element( by=By.CSS_SELECTOR, value=".post-title" ) # Imprime o texto da confirmação  print(elemento_logado.text) # Busca pelo elemento botão log out  elemento_deslogado = bot.find_element( by=By.CSS_SELECTOR, value=".wp-block-button__link" ) # Ação de clicar no elemento  elemento_deslogado.click() except Exception as ex: # Busca pelo elemento de mensagem de erro  error_alert = bot.find_element( by=By.ID, value="error" ) # Imprime a mensagem de erro  print(error_alert.text) finally: # Finaliza fechando o navegador  bot.quit() # Imprime mensagem de finalização  print("Finally") if __name__ == "__main__": main() 
Enter fullscreen mode Exit fullscreen mode

Ao executar esse código, o resultado deve ser a seguinte:

PS C:\practice_test_automation> python .\bot.py Logged In Successfully Finally 
Enter fullscreen mode Exit fullscreen mode

Nesse caso, ocorreu tudo como esperado, a automação preencheu os campos com os valores corretos e clicou no botão de login, acessando a página de confirmação e depois clicou em logout para sair da página.

Para testar outras validações, vamos alterar inicialmente o preenchimento do campo de nome de usuário, colocando um valor inválido.

 # Ação de digitar no elemento  # elemento_campo_usuario.send_keys("student")  # Valor incorreto para teste de erro  elemento_campo_usuario.send_keys("estudante") 
Enter fullscreen mode Exit fullscreen mode

Esse será o resultado ao executar:

PS C:\practice_test_automation> python .\bot.py Your username is invalid! Finally 
Enter fullscreen mode Exit fullscreen mode

Conclusão

Podemos notar que o site oferece algumas formas de busca e interação com os elementos da DOM. Como sugestão, tente fazer outras alterações como mudar a senha que retorna outra mensagem de validação, além da possibilidade de procurar por outros elementos e interagir com eles.

Enjoy!

Top comments (2)

Collapse
 
raulferreirasilva profile image
Raul Ferreira

Sempre tive curiosidade de como realizar automações e esse post me vez ver que é muito mais simples do que imaginei, muito obrigado por compartilhar seu conhecimento, vou tentar replicar esse código em casa 🦤.

Collapse
 
morgannadev profile image
Morganna

Excelente forma de começar a praticar e evoluir na área de RPA. Obrigada por compartilhar!