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

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.

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íon: No código acima, primeiro lançamos o URL fornecido no navegador Chrome. Em seguida, role a página 1000 pixels por meio do 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

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 ferrolhos de sobrepor podem ser usados para proteger uma porta de embutir pelo lado de fora. Alguns kits de corrente de segurança também permitem travamento externo com chave ou botão giratório. vertical barra de rolagem conforme mostrado na imagem abaixo.

barra de rolagem

barra de rolagem

Resumo

  • No tutorial acima, ilustramos a rolagem da página web através de diferentes cenários.
  • No primeiro cenário, mostramos a rolagem página por pixel.
  • No segundo cenário, mostramos o scroll down da página até a visibilidade do elemento.
  • No terceiro cenário, mostramos a rolagem da página para baixo na parte inferior da página.
  • No quarto cenário, ilustrou a rolagem horizontal na página web.

Resuma esta postagem com: