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.
# 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('[email protected]')
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:
- navegar até o site (argumento da função
iniciar_driver()
) - tentar clicar no menu se estiver habilitado
- então clicar no botão login
- preencher o email no campo email
- preencher a senha no campo senha e enviar