1. Fundamentos da busca de elementos
Métodos para buscar elementos
Antes de mergulhar de cabeça no código, é essencial entender como podemos buscar elementos numa página web com o Selenium. O Selenium oferece vários métodos práticos para encontrar elementos:
-
find_element_by_id(): Busca um elemento usando seu identificador único (id). -
find_element_by_name(): Permite buscar um elemento através do atributoname. -
find_element_by_class_name(): Busca elementos que possuem uma classe (class) específica. -
find_element_by_tag_name(): Usa o nome da tag para encontrar elementos, comodiv,p,a.
Vamos começar com um exemplo simples — buscando um elemento pelo id. Imagine que perdemos o botão com o texto "Botão Mágico" e precisamos encontrá-lo:
from selenium import webdriver
# Configuração do driver e abertura do navegador
driver = webdriver.Chrome()
driver.get('https://example.com')
# Buscar o elemento pelo seu id
magic_button = driver.find_element_by_id('magic_button_id')
# Trabalhar com o elemento encontrado (por exemplo, extrair o texto)
print(magic_button.text)
# Finalização da sessão
driver.quit()
Trabalhando com elementos encontrados
Depois de encontrar um elemento, é hora de decidir o que fazer com ele. Solte a imaginação e use os métodos do Selenium, como text para pegar o conteúdo de texto do elemento ou get_attribute('attribute_name') para extrair o valor de qualquer atributo do elemento.
Suponha que o elemento seja um link, e queremos saber para onde ele aponta. É assim que fazemos:
# Buscar o elemento com o link
link_element = driver.find_element_by_class_name('link_class')
# Extrair o URL do atributo href
link_url = link_element.get_attribute('href')
print(f'Este link aponta para: {link_url}')
2. Método find_element_by_id()
O método find_element_by_id() é uma das maneiras mais rápidas e confiáveis para buscar um elemento na página. Ele localiza elementos pelo atributo único id. Em HTML, o atributo id é um identificador único, por isso podemos ter certeza de que o método retornará apenas o elemento necessário.
Exemplo de uso:
element = driver.find_element_by_id("submit-button")
Neste exemplo, o Selenium busca o elemento com id="submit-button" e o armazena na variável element. Esse método é prático para buscar botões, formulários, campos de entrada e outros elementos únicos que raramente se repetem numa página.
Quando usar?
Usar find_element_by_id() é recomendado sempre que o elemento possuir um identificador único id, já que o método garante acesso rápido e preciso ao elemento.
3. Método find_element_by_name()
O método find_element_by_name() busca elementos pelo atributo name. Ele é frequentemente usado para formulários e campos de entrada, especialmente quando vários elementos podem ter a mesma classe ou id, mas diferentes valores para o atributo name. Ao contrário de id, o atributo name não precisa ser único, e às vezes há vários elementos com o mesmo name na página.
Exemplo de uso:
element = driver.find_element_by_name("username")
Esse código busca o elemento com name="username". Normalmente é o campo de entrada do nome de usuário nos formulários de login.
Quando usar?
Esse método é útil se o elemento na página não possui um id único, mas tem o atributo name. Ele é especialmente eficiente para formulários de entrada, onde os elementos frequentemente são identificados por name.
6. Aplicações práticas
Agora sabemos como buscar elementos por id, classe e nome. Essa habilidade é super útil, especialmente para automatizar interações com páginas web. Os elementos encontrados podem ser usados para preencher formulários, clicar em botões ou extrair informações — tarefas que podem acelerar muito o seu trabalho e te livrar de tarefas repetitivas.
Imagine uma empresa onde cada funcionário gasta 10 minutos por dia preenchendo o mesmo formulário online. É aí que entra o Selenium: ele pode lidar com toda essa rotina em alguns minutos enquanto você toma seu café da manhã.
GO TO FULL VERSION