Como rolar até o elemento no Selenium?

A rolagem até um elemento no Selenium pode ser feita usando o método execute_script , que permite executar JavaScript na sessão do navegador. Essa abordagem oferece a flexibilidade de rolar até qualquer WebElement identificado por vários seletores Selenium. Aqui está um guia passo a passo sobre como rolar até um elemento específico usando o Selenium, incluindo um exemplo de código aprimorado que navega até uma página da Web e rola até um elemento especificado.

Como rolar até um elemento no Selenium

Para rolar até um elemento, você precisa:

  1. Inicialize uma instância do WebDriver.
  2. Navegue até a página da web de destino.
  3. Localize o WebElement para o qual você deseja rolar usando um seletor adequado.
  4. Use o método execute_script para executar um comando JavaScript que rola até o elemento.

Abaixo está um exemplo de código que navega até uma página da web e rola até um elemento especificado (por exemplo, um elemento com um ID específico).

Código de exemplo

      from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.chrome.service import Servicefrom selenium.webdriver.chrome.options import Optionsfrom webdriver_manager.chrome import ChromeDriverManager# Configure as opções do Chromechrome_options = Options()chrome_options.add_argument("--start-maximized")# Inicializa o WebDriverdriver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)# Acessa a página desejadadriver.get("http://www.scrapingbee.com")# Código JavaScript para rolar até um elemento específicojs_code = "arguments[0].scrollIntoView({behavior: 'smooth', block: 'center'});"# Localiza o WebElement ao qual deseja rolarelement = driver.find_element(By.ID, 'footer')# Executa o código JavaScript para rolar até o elementodriver.execute_script(js_code, element)# Opcionalmente, você pode adicionar uma pausa para observar a rolagemimport timetime.sleep(2)# Fecha o WebDriverdriver.quit()

    

Explicação

  1. Configurar as opções do Chrome: configura o Chrome para começar maximizado, melhorando a visibilidade durante a execução do script.
  2. Inicialize o WebDriver: use webdriver_manager para gerenciar automaticamente o binário do ChromeDriver, simplificando a configuração.
  3. Navegue até a página da web: direcione o WebDriver para o URL especificado.
  4. Código JavaScript: O método scrollIntoView é aprimorado com opções para rolar suavemente e centralizar o elemento na janela de visualização.
  5. Localize o WebElement: utiliza find_element com By.ID para direcionar o elemento até o qual rolar.
  6. Executar JavaScript: execute o código JavaScript, passando o WebElement de destino como argumento.
  7. Atraso (opcional): adicione um atraso para observar a ação de rolagem.
  8. Fechar WebDriver: Fecha a sessão do navegador.

Dicas para rolagem eficiente no Selenium

  • Rolagem suave: Usar {behavior: 'smooth'} garante uma experiência de rolagem mais suave.
  • Posicionamento do elemento{block: 'center'} pode ser ajustado para start ou end com base em onde você deseja que o elemento apareça na janela de visualização.
  • Identificação do elemento: Use vários seletores (By.IDBy.CLASS_NAMEBy.CSS_SELECTOR, etc.) para selecionar os elementos com precisão.

Seguindo este guia, você pode rolar com eficiência até qualquer elemento em uma página da web usando o Selenium, tornando seus scripts de automação da web mais robustos e fáceis de usar. Não tem certeza se você deve usar Selenium ou Puppeteer? Confira este artigo de comparação.

Pronto para começar?