Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Selenium WebDriver(Java)로 특정 DIV 요소를 스크롤하는 방법

Selenium WebDriver는 페이지 내 특정 DIV 영역을 직접 스크롤하는 전용 메서드를 제공하지 않습니다. 대신 Javascript Executor를 활용하면 원하는 DIV 위치까지 손쉽게 스크롤할 수 있습니다.

동작 원리

먼저 xpath 또는 CSS 선택자를 사용해 스크롤할 대상 DIV 요소를 찾아야 합니다. 이후 Javascript Executor를 통해 자바스크립트 명령을 실행하는데, Selenium에서 자바스크립트를 실행할 때 사용하는 메서드가 바로 executeScript입니다. 여기에 자바스크립트의 scrollIntoView 메서드를 호출하고 인수로 true를 전달하면 해당 요소가 화면 상단에 맞춰지도록 스크롤됩니다.

문법

WebElement m=driver.findElement(By.xpath("//div[@class='slick-track']"));
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", m);

예제 코드

다음은 Chrome 브라우저에서 특정 DIV까지 스크롤하는 전체 구현 예제입니다.

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.JavascriptExecutor;
public class ScrollToDiv{
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "C:\\Users\\ghs6kor\\Desktop\\Java\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.get("https://www.tutorialspoint.com/index.htm");
        driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS);
        // 대상 요소 식별
        WebElement m=driver.findElement(By.xpath("//div[@class='slick-track']"));
        // Javascript Executor 실행
        ((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView(true);", m);
        Thread.sleep(800);
        driver.quit();
    }
}

실행 결과

코드를 실행하면 브라우저가 열리고 지정한 xpath에 해당하는 DIV 요소가 화면에 보이도록 자동으로 스크롤된 후, 드라이버가 종료됩니다.

Selenium WebDriver(Java)로 특정 DIV 요소를 스크롤하는 방법