Utilização de JavaScript para Localizar Elementos no Selenium

Introdução à Localização de Elementos via JavaScript no Selenium

A localização de elementos no Selenium pode ser realizada utilizando scripts JavaScript, onde o valer retornado pelo script identifica o elemento desejado. Esta abordagem envolve a execução de código JavaScript no navegador, permitindo a seleção de elementos com base em sua estrutura DOM ou através de bibliotecas como jQuery. Embora seja mais complexa que métodos diretos como XPath ou seletores CSS, pode ser útil em cenários específicos onde a interação programática é necessária.

Seleção de Elementos com Métodos DOM

O modelo de objeto do documento (DOM) representa a página HTML como uma estrutura de árvore, onde cada nó pode ser acessado via JavaScript. Os métodos DOM padrão oferecem diversas formas de recuperar elementos:

  • document.getElementById() - Obtém um único elemento com o ID especificado.
  • document.getElementsByClassName() - Retorna uma coleção de elementos com a classe CSS indicada.
  • document.getElementsByName() - Retorna uma coleção de elementos com o atributo name definido.
  • document.getElementsByTagName() - Retorna uma coleção de elementos com a tag HTML fornecida.

Ao utilizar métodos que retornam coleções, é necessário acessar índices específicos para obter elemetnos individuais. Exemplos de código em Python com Selenium:


# Obter elemento por ID
comando = 'return document.getElementById("campo-pesquisa")'
elemento = driver.execute_script(comando)

# Obter o primeiro elemento de uma classe específica
comando = 'return document.getElementsByClassName("campo-entrada")[0]'
elemento = driver.execute_script(comando)

# Obter elementos por tag dentro de um contêiner
comando = 'return document.getElementById("formulario").getElementsByTagName("input")'
colecao_elementos = driver.execute_script(comando)

Nota: A compatibilidade de métodos como getElementsByClassName pode variar em navegadores antigos.

Seleção de Elementos com jQuery

O jQuery simplifica a seleção de elementos com sintaxe concisa e suporte a seletores avançados. Para utilizá-lo no Selenium, o script deve estar disponível no contexto da página. Exemplos comuns de seleção via jQuery:


# Seleção por texto contido em um elemento
comando = 'return $("p:contains(\'termo\')")[0]'
elemento = driver.execute_script(comando)

# Seleção por seletor CSS complexo
comando = 'return $("div#container input[type=search]")[0]'
elemento = driver.execute_script(comando)

# Seleção por XPath usando a função $x do jQuery
comando = 'return $x("//input[@name=\'busca\']/following-sibling::button")[0]'
elemento = driver.execute_script(comando)

Esses comandos são executados diretamente no navegador, permmitindo uma integração flexível com a lógica de teste.

Tags: Selenium WebDriver javascript DOM jQuery xpath

Publicado em 7-4 08:07