Skip to content

Instantly share code, notes, and snippets.

@eliasalbuquerque
Created January 17, 2024 12:32
Show Gist options
  • Save eliasalbuquerque/5772a939212161233ed39a35e8902fec to your computer and use it in GitHub Desktop.
Save eliasalbuquerque/5772a939212161233ed39a35e8902fec to your computer and use it in GitHub Desktop.
Curso Dev Aprender | Jhonatan de Souza

Clicar checkbox

Usando Selenium, encontrar checkbox na tela e marcar apenas:

  • Conversível
  • Off-Road

Código

# 202401 - Python 3.12.0
# 5.25 - Como CLICAR em CHECKBOX


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


# DESAFIO 3

def clicar_checkbox():
    logger = logging.getLogger(__name__)

    def clicar_elemento(xpath):
        elemento = driver.find_element(By.XPATH, xpath)
        driver.execute_script("arguments[0].click();", elemento)
        sleep(1)
        return elemento

    def scroll_pagina(pixcels):
        driver.execute_script("window.scrollTo(0, arguments[0]);", pixcels)
        sleep(1)

    try:
        # navegar ate a pagina
        site = 'https://cursoautomacao.netlify.app/desafios'
        driver = iniciar_driver(site_url=site, detach=True)
        
        # rolar pagina ate desafio 3
        scroll_pagina(600)

        # marcar 'conversivel' e 'off road' 
        xp_conversivel = '//input[@id="conversivelcheckbox"]'
        xp_offroad = '//input[@id="offroadcheckbox"]'
        cb_conversivel = clicar_elemento(xp_conversivel)
        cb_offroad = clicar_elemento(xp_offroad)

        # checar se elementos foram marcados
        if cb_conversivel.is_selected() and cb_offroad.is_selected() == True:
            print('Checkbox confirmado')
            driver.close()
        else:
            print(f'Elemento checkbox não foi marcado corretamente')
            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_checkbox()

Passos:

  1. Navegar até a página do desafio 3
  2. Rolar a página para baixo até o elemento estar visível
  3. Buscar checkbox 'Conversível' e clicar
  4. Buscar checkbox 'Off-Road' e clicar
  5. Checar se elementos foram marcados corretamente
  6. Finalizar a aplicação

Console e Resultado Final

Checkbox confirmado

desafio_3


GitHub: eliasalbuquerque/python-selenium

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