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!
暂无评论内容