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!