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.
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.
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.
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.
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.
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.






