Como rolar a página para baixo ou para cima Selenium Driver da Web

⚡ Resumo Inteligente

Rolar a página em Selenium O WebDriver usa o JavascriptInterface do executor para executar JavaCrie comandos de rolagem por script, pois o WebDriver manipula o DOM diretamente. Quatro cenários práticos abrangem a rolagem por pixel, até um elemento, até o final da página e horizontalmente.

  • 📜 JavascriptExecutor: Runs JavaScript de comandos de rolagem Selenium WebDriver.
  • 🔢 Deslizar por pixel: window.scrollBy(x,y) move a página um número definido de pixels.
  • 🎯 Deslize para o elemento: scrollIntoView() rola a tela até que o elemento alvo esteja totalmente visível.
  • ⬇️ Deslize para baixo: O comando scrollTo com document.body.scrollHeight atinge o final da página.
  • ↔️ Rolagem horizontal: O scrollIntoView também se move lateralmente para elementos fora da tela.
  • 🧭 Noções básicas da barra de rolagem: Ao rolar a página, são revelados elementos que carregam somente quando entram na área visível.

Deslizar a página para cima ou para baixo Selenium webdriver

Role para dentro Selenium

Para rolar usando Selenium, Você pode usar JavaInterface ScriptExecutor que ajuda a executar JavaMétodos de script através de Selenium Driver da Web

Sintaxe:

JavascriptExecutor js = (JavascriptExecutor) driver;  
   js.executeScript(Script,Arguments);
  • Roteiro – Este é o JavaScript que precisa ser executado.
  • Argumentos – São os argumentos do script. É opcional.

O que é uma barra de rolagem?

Uma barra de rolagem permite mover-se pela tela na direção horizontal ou vertical se a rolagem da página atual não couber na área visível da tela. É usado para mover a janela para cima e para baixo.

Selenium O Webdriver não requer rolagem para executar ações, pois manipula o DOM. Mas em certas páginas da web, os elementos só se tornam visíveis depois que o usuário rola até eles. Nesses casos, a rolagem pode ser necessária.

A barra de rolagem é de dois tipos: Horizontal e vertical barra de rolagem conforme mostrado na imagem abaixo.

barra de rolagem

barra de rolagem

Selenium Script para rolar a página para baixo

Vamos ver como rolar uma página da web usando o selenium webdriver com os seguintes 4 cenários:

  • Cenário 1: Para rolar a página da web por pixel.
  • Cenário 2: Para rolar a página da web pela visibilidade do elemento.
  • Cenário 3: Para rolar a página da web na parte inferior da página.
  • Cenário 4: Rolagem horizontal na página da web.

Cenário 1: Para rolar a página da web por pixel.

Selenium Script

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

public class ScrollByPixel {

    WebDriver driver;
    @Test
    public void ByPixel() {
        System.setProperty("webdriver.chrome.driver", "E://Selenium//Selenium_Jars//chromedriver.exe");
        driver = new ChromeDriver();

        JavascriptExecutor js = (JavascriptExecutor) driver;

        // Launch the application		
        driver.get("https://demo.guru99.com/test/guru99home/");

        //To maximize the window. This code may not work with Selenium 3 jars. If script fails you can remove the line below		
        driver.manage().window().maximize();

        // This  will scroll down the page by  1000 pixel vertical		
        js.executeScript("window.scrollBy(0,1000)");
    }
}

Script DescriptíonNo código acima, primeiro executamos o comando fornecido. URL No navegador Chrome. Em seguida, role a página em 1000 pixels usando o executeScript. Javascript O método ScrollBy() rola a página da web até um número específico de pixels.

A sintaxe dos métodos ScrollBy() é:

executeScript("window.scrollBy(x-pixels,y-pixels)");

x-pixels é o número no eixo x, ele se move para a esquerda se o número for positivo e se move para a direita se o número for negativo. y-pixels é o número no eixo y, ele se move para baixo se o número for positivo e move para cima se o número for negativo.

Exemplo:

js.executeScript("window.scrollBy(0,1000)"); //Scroll vertically down by 1000 pixels

Análise de saída: Aqui está a saída quando você executa o script acima.

Role a página da web por pixel

Cenário 2: Para rolar a página da web pela visibilidade do elemento.

Selenium Script

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

public class ScrollByVisibleElement {

    WebDriver driver;
    @Test
    public void ByVisibleElement() {
        System.setProperty("webdriver.chrome.driver", "G://chromedriver.exe");
        driver = new ChromeDriver();
        JavascriptExecutor js = (JavascriptExecutor) driver;

        //Launch the application		
        driver.get("https://demo.guru99.com/test/guru99home/");

        //Find element by link text and store in variable "Element"        		
        WebElement Element = driver.findElement(By.linkText("Linux"));

        //This will scroll the page till the element is found		
        js.executeScript("arguments[0].scrollIntoView();", Element);
    }
}

Script Descriptíon: No código acima, primeiro lançamos o URL fornecido no navegador Chrome. Em seguida, role a página até que o elemento mencionado esteja visível na página atual. Javascript O método scrollIntoView() rola a página até que o elemento mencionado esteja totalmente visível:

js.executeScript("arguments[0].scrollIntoView();",Element );

“argumentos[0]” significa o primeiro índice da página começando em 0.

Onde um “Elemento” é o localizador na página web.

Análise de saída: Aqui está a saída quando você executa o script acima.

 Role a página da web para baixo pela visibilidade do elemento

Cenário 3: Para rolar a página da web na parte inferior da página.

Selenium Script

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

public class ScrollByPage {

    WebDriver driver;
    @Test
    public void ByPage() {
        System.setProperty("webdriver.chrome.driver", "E://Selenium//Selenium_Jars//chromedriver.exe");
        driver = new ChromeDriver();

        JavascriptExecutor js = (JavascriptExecutor) driver;

        // Launch the application		
        driver.get("https://demo.guru99.com/test/guru99home/");

        //This will scroll the web page till end.		
        js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
    }
}

Script Descriptíon: No código acima, primeiro lançamos o URL fornecido no navegador Chrome. Em seguida, role até o final da página. Javascript método scrollTo() rola até o final da página.

js.executeScript("window.scrollTo(0, document.body.scrollHeight)");

“document.body.scrollHeight” retorna a altura completa do corpo, ou seja, da página da web.

Análise de saída: Aqui está a saída quando você executa o script acima.

Role a página da Web na parte inferior da página

Cenário 4: rolagem horizontal na página da web

Selenium Script

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

public class HorizontalScroll {

    WebDriver driver;
    @Test
    public void ScrollHorizontally() {
        System.setProperty("webdriver.chrome.driver", "E://Selenium//Selenium_Jars//chromedriver.exe");
        driver = new ChromeDriver();

        JavascriptExecutor js = (JavascriptExecutor) driver;

        // Launch the application		
        driver.get("https://demo.guru99.com/test/guru99home/scrolling.html");

        WebElement Element = driver.findElement(By.linkText("VBScript"));

        //This will scroll the page Horizontally till the element is found		
        js.executeScript("arguments[0].scrollIntoView();", Element);
    }
}

Script Descriptíon: No código acima, primeiro lançamos o URL fornecido no navegador Chrome. Em seguida, role a página horizontalmente até que o elemento mencionado fique visível na página atual. Javascript O método scrollIntoView() rola a página até que o elemento mencionado esteja totalmente visível:

js.executeScript("arguments[0].scrollIntoView();",Element );

Análise de saída: Aqui está a saída quando você executa o script acima.

Rolagem horizontal na página da web

Saiba mais sobre o JavaExecutor de script

Perguntas Frequentes

Use um valor de pixel negativo com window.scrollBy, por exemplo, js.executeScript com window.scrollBy(0,-1000). O valor y negativo move a página para cima, ao contrário de um valor positivo que rola para baixo.

Sim. Você pode enviar Keys.PAGE_DOWN, Keys.END ou as teclas de seta para um elemento, ou usar a classe Actions em Selenium 4. JavascriptO executor continua sendo a opção mais flexível.

Os navegadores capturam apenas a área visível da página, então os scripts percorrem a página, capturam seções e as unem. A rolagem também aciona o carregamento lento de imagens e conteúdo antes da captura de tela.

Sim. Os assistentes de IA geram trechos de código scrollBy, scrollIntoView e scrollTo a partir de instruções simples e explicam os cálculos em pixels. RevVisualize os localizadores e as condições de espera antes de executá-los em seu ambiente.

Ferramentas baseadas em IA detectam quando o carregamento de novo conteúdo é interrompido, ajustam a profundidade de rolagem dinamicamente e aguardam de forma inteligente por elementos. Isso automatiza o teste de feeds de rolagem infinita sem a necessidade de contagens de pixels predefinidas.

O scrollBy move a página um número fixo de pixels a partir da posição atual. O scrollIntoView rola a página até que um elemento específico fique visível. Use scrollBy para distância e scrollIntoView para selecionar elementos.

Resuma esta postagem com: