Selenium에서 Java를 사용해 웹 페이지를 아래로 스크롤하는 방법을 알아보겠습니다. Selenium은 스크롤 동작을 직접 처리할 수 없기 때문에, Javascript Executor의 도움을 받아 특정 요소까지 스크롤을 수행해야 합니다.
스크롤 구현 원리
먼저 스크롤하려는 대상 요소를 찾아야(locating) 합니다. 그다음 Javascript Executor를 사용하여 자바스크립트 명령을 실행합니다. Selenium에서 자바스크립트 명령을 실행할 때는 executeScript 메서드를 사용하며, 자바스크립트의 scrollIntoView 메서드에 true를 인자로 전달하여 요소가 화면에 보이도록 스크롤합니다.
기본 문법
WebElement elm = driver.findElement(By.name("name"));
((JavascriptExecutor) driver)
.executeScript("arguments[0].scrollIntoView(true);", elm);전체 예제 코드
아래 예제는 Firefox 브라우저에서 페이지를 열고, 'Contact' 텍스트를 가진 요소를 찾은 후 해당 위치까지 스크롤하는 전체 과정을 보여줍니다.
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.JavascriptExecutor;
public class ScrollAction{
public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver", "C:\\Users\\ghs6kor\\Desktop\\Java\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
// 암시적 대기(implicit wait) 설정
driver.manage().timeouts().implicitlyWait(4, TimeUnit.SECONDS);
// 애플리케이션 실행
driver.get
("https://www.tutorialspoint.com/about/about_careers.htm ");
// 요소 식별
WebElement n=driver.findElement(By.xpath("//*[text()='Contact']"));
// Javascript executor 실행
((JavascriptExecutor)driver)
.executeScript("arguments[0].scrollIntoView(true);", n);
}
}실행 결과
코드를 실행하면 브라우저가 해당 페이지를 열고 'Contact' 요소가 화면에 나타날 때까지 자동으로 스크롤되는 것을 확인할 수 있습니다.

핵심 포인트 정리
- Selenium은 스크롤을 직접 지원하지 않으므로 Javascript Executor를 활용해야 합니다.
executeScript메서드로 자바스크립트 명령을 실행합니다.scrollIntoView(true)를 사용하면 대상 요소가 화면 상단에 맞춰져 보이게 됩니다.