페이지를 아래로 또는 위로 스크롤하는 방법 Selenium 웹드라이버

⚡ 스마트 요약

페이지를 스크롤하는 중 Selenium WebDriver는 다음을 사용합니다. Javascript실행을 위한 실행기 인터페이스 JavaWebDriver는 DOM을 직접 조작하기 때문에 스크립트 스크롤 명령을 사용할 수 있습니다. 픽셀 단위 스크롤, 특정 요소로 스크롤, 페이지 하단으로 스크롤, 가로 스크롤 등 네 가지 실제 시나리오를 다룹니다.

  • 📜 Javascript집행자: 실행 Java스크립트 스크롤 명령 Selenium 웹드라이버.
  • 🔢 픽셀 단위로 스크롤하세요: window.scrollBy(x,y)는 페이지를 지정된 픽셀 수만큼 이동합니다.
  • 🎯 해당 요소로 스크롤하세요: scrollIntoView()는 대상 요소가 완전히 보일 때까지 스크롤합니다.
  • ⬇️ 맨 아래로 스크롤하세요: document.body.scrollHeight를 사용한 scrollTo가 페이지 끝에 도달했습니다.
  • ↔️ 가로 스크롤: scrollIntoView는 화면 밖 요소로 측면 이동도 합니다.
  • 🧭 스크롤바 기본 사항: 스크롤하면 화면에 나타날 때만 로드되는 요소들이 표시됩니다.

페이지를 아래로 또는 위로 스크롤하세요 Selenium 웹드라이버

스크롤 Selenium

다음을 사용하여 스크롤하려면 Selenium, 당신이 사용할 수있는 Java실행을 돕는 ScriptExecutor 인터페이스 Java스크립트 방법을 통해 Selenium 웹드라이버

구문 :

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

스크롤바란?

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

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

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

스크롤

스크롤

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

다음의 4가지 시나리오에서 Selenium Webdriver를 사용하여 웹 페이지를 아래로 스크롤하는 것을 살펴보겠습니다.

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

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

Selenium 스크립트

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)");
    }
}

스크립트 Descript이온위 코드에서 먼저 주어진 함수를 실행합니다. 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: 요소의 가시성을 기준으로 웹 페이지를 아래로 스크롤합니다.

Selenium 스크립트

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);
    }
}

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

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

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

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

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

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

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

Selenium 스크립트

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)");
    }
}

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

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

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

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

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

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

Selenium 스크립트

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);
    }
}

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

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

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

웹 페이지의 가로 스크롤

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

자주 묻는 질문

window.scrollBy에 음수 픽셀 값을 사용하세요. 예를 들어 js.executeScript에서 window.scrollBy(0,-1000)과 같이 사용합니다. 음수 y 값은 페이지를 위쪽으로 이동시키고, 양수 값은 아래쪽으로 스크롤합니다.

예. Keys.PAGE_DOWN, Keys.END 또는 화살표 키를 요소에 전달하거나 Actions 클래스를 사용할 수 있습니다. Selenium 4. Javascript유언집행자가 여전히 가장 유연한 선택지입니다.

브라우저는 화면에 보이는 부분만 캡처하므로 스크립트는 페이지를 스크롤하면서 특정 영역을 캡처한 다음 합쳐서 하나의 이미지로 만듭니다. 스크롤을 하면 스크린샷을 찍기 전에 지연 로드되는 이미지와 콘텐츠가 로드됩니다.

네. AI 비서는 일반적인 명령에서 scrollBy, scrollIntoView, scrollTo와 같은 스크롤 경로를 생성하고 픽셀 단위 계산을 설명합니다. Rev스위트에서 실행하기 전에 위치 탐지기와 대기 조건을 확인하십시오.

AI 기반 도구는 새로운 콘텐츠 로딩이 중단되는 시점을 감지하고, 스크롤 깊이를 동적으로 조정하며, 요소가 나타날 때까지 지능적으로 기다립니다. 이를 통해 픽셀 수를 직접 입력하지 않고도 무한 스크롤 피드 테스트를 자동화할 수 있습니다.

`scrollBy`는 현재 위치에서 고정된 픽셀 수만큼 페이지를 이동합니다. `scrollIntoView`는 특정 요소가 보일 때까지 스크롤합니다. 이동 거리에는 `scrollBy`를, 특정 요소에는 `scrollIntoView`를 사용하세요.

이 게시물을 요약하면 다음과 같습니다.