Selenium Webdriver에서 페이지를 아래로 스크롤하거나 위로 스크롤하는 방법

셀레늄에서 스크롤

Selenium을 사용하여 스크롤하려면 Selenium Webdriver를 통해 JavaScript 메서드를 실행하는 데 도움이 되는 JavaScriptExecutor 인터페이스를 사용할 수 있습니다.

구문 :

JavascriptExecutor js = (JavascriptExecutor) driver;  
   js.executeScript(Script,Arguments);
  • 스크립트 – 실행해야 하는 JavaScript입니다.
  • 인수 – 스크립트에 대한 인수입니다. 선택 사항입니다.

페이지를 아래로 스크롤하는 Selenium 스크립트

follo와 함께 Selenium webdriver를 사용하여 웹 페이지를 아래로 스크롤하는 방법을 살펴보겠습니다.wing 4가지 시나리오:

  • 시나리오 1: 웹 페이지를 픽셀 단위로 아래로 스크롤합니다.
  • 시나리오 2: 요소의 가시성을 기준으로 웹 페이지를 아래로 스크롤합니다.
  • 시나리오 3: 페이지 하단에서 웹페이지를 아래로 스크롤합니다.
  • 시나리오 4: 웹 페이지의 가로 스크롤.

시나리오 1: 웹 페이지를 픽셀 단위로 아래로 스크롤합니다.

셀레늄 스크립트

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("http://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)");
    }
}

스크립트 설명: 위 코드에서는 먼저 Chrome 브라우저에서 지정된 URL을 실행합니다. 다음으로, ExecuteScript를 통해 페이지를 1000픽셀씩 스크롤합니다. Javascript 메서드 ScrollBy()는 웹 페이지를 특정 픽셀 수까지 스크롤합니다.

ScrollBy() 메서드의 구문은 다음과 같습니다.

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

x-픽셀은 x축의 숫자이며 숫자가 양수이면 왼쪽으로 이동하고 숫자가 음수이면 오른쪽으로 이동합니다. y-픽셀은 y축의 숫자이며 숫자가 XNUMX이면 아래로 이동합니다. 양수이고 숫자가 음수이면 위로 이동합니다.

예:

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

출력 분석: 위 스크립트를 실행할 때의 출력은 다음과 같습니다.

웹 페이지를 픽셀 단위로 아래로 스크롤

시나리오 2: 요소의 가시성을 기준으로 웹 페이지를 아래로 스크롤합니다.

셀레늄 스크립트

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("http://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);
    }
}

스크립트 설명: 위 코드에서는 먼저 Chrome 브라우저에서 지정된 URL을 실행합니다. 그런 다음 언급된 요소가 현재 페이지에 표시될 때까지 페이지를 스크롤합니다. Javascript 메소드 scrollIntoView()는 언급된 요소가 전체 보기에 표시될 때까지 페이지를 스크롤합니다.

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

"인수[0]"은 0부터 시작하는 페이지의 첫 번째 인덱스를 의미합니다.

여기서 "요소"는 웹페이지의 위치 지정자입니다.

출력 분석: 위 스크립트를 실행할 때의 출력은 다음과 같습니다.

요소의 가시성을 기준으로 웹 페이지를 아래로 스크롤합니다.

시나리오 3: 페이지 하단에서 웹페이지를 아래로 스크롤합니다.

셀레늄 스크립트

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("http://demo.guru99.com/test/guru99home/");

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

스크립트 설명: 위 코드에서는 먼저 Chrome 브라우저에서 지정된 URL을 실행합니다. 그런 다음 페이지 하단까지 스크롤하십시오. 자바스크립트 메소드 scrollTo()는 페이지 끝까지 스크롤합니다.

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

"document.body.scrollHeight"는 본문, 즉 웹페이지의 전체 높이를 반환합니다.

출력 분석: 위 스크립트를 실행할 때의 출력은 다음과 같습니다.

페이지 하단의 웹 페이지를 아래로 스크롤하세요.

시나리오 4: 웹 페이지의 가로 스크롤

셀레늄 스크립트

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("http://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);
    }
}

스크립트 설명: 위 코드에서는 먼저 Chrome 브라우저에서 지정된 URL을 실행합니다. 그런 다음 언급된 요소가 현재 페이지에 표시될 때까지 페이지를 가로로 스크롤합니다. Javascript 메소드 scrollIntoView()는 언급된 요소가 전체 보기에 표시될 때까지 페이지를 스크롤합니다.

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

출력 분석: 위 스크립트를 실행할 때의 출력은 다음과 같습니다.

웹 페이지의 가로 스크롤

전단지에 포함된 링크에 대해 더 알아보기 자바스크립트 실행기

스크롤바란?

스크롤 막대는 현재 페이지 스크롤이 화면의 표시 영역에 맞지 않는 경우 가로 또는 세로 방향으로 화면 주위를 이동할 수 있는 도구입니다. 창을 위아래로 움직일 때 사용됩니다.

Selenium Webdriver는 DOM을 조작할 때 작업을 수행하기 위해 스크롤이 필요하지 않습니다. 그러나 특정 웹페이지에서는 사용자가 스크롤한 후에만 요소가 표시됩니다. 이러한 경우 스크롤이 필요할 수 있습니다.

스크롤 막대는 두 가지 유형입니다. 수평수직선 아래 스크린샷과 같이 스크롤 막대를 사용합니다.

스크롤

스크롤

요약

  • 위의 튜토리얼에서는 다양한 시나리오를 통해 웹 페이지 스크롤을 보여줍니다.
  • 첫 번째 시나리오에서는 페이지 단위로 아래로 스크롤하는 것을 보여주었습니다.
  • 두 번째 시나리오에서는 요소가 표시될 때까지 페이지 아래로 스크롤하는 기능을 보여주었습니다.
  • 세 번째 시나리오에서는 페이지 하단에 페이지 스크롤을 표시했습니다.
  • 네 번째 시나리오에서는 웹 페이지의 가로 스크롤을 보여줍니다.