Usando Selenium
, navegar até a página de desafios e resolver o Desafio 2:
# 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
# DESAFIO
def desafio_2():
logger = logging.getLogger(__name__)
def clicar_elemento(xpath):
elemento = driver.find_element(By.XPATH, xpath)
driver.execute_script("arguments[0].click();", elemento)
sleep(1)
def preencher_elemento(xpath, preencher):
elemento = driver.find_element(By.XPATH, xpath)
elemento.send_keys(preencher)
sleep(1)
def scroll_pagina(valor):
driver.execute_script("window.scrollTo(0, arguments[0]);", valor)
sleep(1)
site = 'https://cursoautomacao.netlify.app/'
xpath_menu = '//button[@data-target="#navbarsExample04"]'
xpath_desafio = '//a[@href="/desafios"]'
nome = 'Elias Albuquerque'
xp_dadosusuario = '//input[@id="dadosusuario"]'
xp_cliqueaqui = '//button[@id="desafio2"]'
xpath_validar = '//input[@id="escondido"]'
xp_botao_validar = '//button[@id="validarDesafio2"]'
try:
'''
preencher_elemento(elemento, xpath, preencher):
clicar_elemento(elemento, xpath):
scroll_pagina(valor):
'''
# nagegar ate o site
driver = iniciar_driver(site_url=site, detach=True)
sleep(1)
try:
clicar_elemento(xpath_menu)
finally:
clicar_elemento(xpath_desafio)
# rolar janela
scroll_pagina(485)
# acessar campo de preenchimento desafio 2
# preencher o nome
preencher_elemento(xpath=xp_dadosusuario, preencher=nome)
# clicar no botao 'clique aqui'
clicar_elemento(xp_cliqueaqui)
sleep(2)
# desafio 2 bonus: campo escondido
try:
preencher_elemento(xpath=xpath_validar, preencher=nome)
clicar_elemento(xp_botao_validar)
finally:
sleep(5)
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()
desafio_2()
Passos:
- navegar até o site (argumento da função iniciar_driver() )
- tentar clicar no menu se estiver habilitado
- então clicar no botão Desafios
- preencher o campo nome
- clicar no botão Clique aqui
- Bônus: aparecerá mais um campo para preencher e validar:
- preencher o segundo campo nome
- clicar no botão Validar