Skip to content

Instantly share code, notes, and snippets.

@eliasalbuquerque
Last active January 15, 2024 11:55
Show Gist options
  • Save eliasalbuquerque/3648ee98c7ebdeb1e1077e2b705bb3e9 to your computer and use it in GitHub Desktop.
Save eliasalbuquerque/3648ee98c7ebdeb1e1077e2b705bb3e9 to your computer and use it in GitHub Desktop.
Curso Dev Aprender | Jhonatan de Souza

Simular login e senha

Usando o módulo Selenium, simular o envio de login e senha, clicando nos elementos da página até o preenchimento e envio completo das informações.

Código

# 202401 - Python 3.12.0
# MA_5.22 - Como CLICAR em BOTÕES E LINKS


import logging
import traceback
from time import sleep
from app import iniciar_driver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys


def clicar_links_botoes():
    logger = logging.getLogger(__name__)
    try:
        # entrar no site
        site = 'https://cursoautomacao.netlify.app/'
        driver = iniciar_driver(site_url=site, zoom_level=.75, detach=True)
        sleep(2)

        # clicar em login
        try:
            # se a tela estiver pequena e o login estiver dentro do menu
            xpath_botao_menu = "//button[@data-target='#navbarsExample04']"
            botao_menu = driver.find_element(By.XPATH, xpath_botao_menu)
            driver.execute_script("arguments[0].click();", botao_menu)
            sleep(2)
        finally:
            # clicar no botao login
            xpath_botao_login = "//a[@href='/login']"
            botao_login = driver.find_element(By.XPATH, xpath_botao_login)
            driver.execute_script("arguments[0].click();", botao_login)
            sleep(2)

        # digitar email no campo email
        xpath_email = "//input[@id='email']"
        campo_email = driver.find_element(By.XPATH, xpath_email)
        campo_email.send_keys('meu_email@example.com')
        sleep(2)
        
        # digitar senha e enviar
        xpath_senha = "//input[@id='senha']"
        campo_senha = driver.find_element(By.XPATH, xpath_senha)
        campo_senha.send_keys('1234', Keys.ENTER)
        sleep(2)

        driver.close()

    except Exception as e:
        logger.error(
            f'Ao clicar em um elemento:\n- {type(e).__name__}: {e}'
            f'Stack trace: {traceback.format_exc()}'
        )
        print(f'Erro ao clicar em um elemento: {type(e).__name__}')
        driver.close()

clicar_links_botoes()

Passos:

  1. navegar até o site (argumento da função iniciar_driver() )
  2. tentar clicar no menu se estiver habilitado
  3. então clicar no botão login
  4. preencher o email no campo email
  5. preencher a senha no campo senha e enviar

Console ou Resultado Final

gif navegando pelo site até o preenchimento de login e senha usando selenium


GitHub: eliasalbuquerque/python-selenium

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment