Selenium-Java 자동화 프레임워크를 Page Object Model을 사용하여 청결하게 구조화하는 방법
자동화 테스트를 처음 시작할 때는 모든 테스트 스크립트를 하나의 거대한 파일에 작성하기 쉽습니다. 하지만 프로젝트가 커지고 웹 요소가 변경될수록 유지보수는 악몽이 됩니다.
그것이 바로 Page Object Model (POM)는 구제에 나섭니다. 이 빠른 가이드에서는 Java와 Selenium을 사용하여 테스트 로직을 페이지 레이아웃에서 깔끔하게 분리하는 방법을 살펴보겠습니다.
🚀 왜 Page Object Model인가요?
POM은 애플리케이션의 각 웹 페이지마다 해당하는 Page Class를 가지는 디자인 패턴입니다. 이 클래스는 해당 페이지에서 수행할 수 있는 요소 로케이터와 작업을 포함하고 있습니다.
주요 혜택:
- 재사용성: 한 번에 로케이터를 작성하고 여러 테스트에서 사용하세요.
- 쉬운 유지보수: 버튼 ID가 변경되면 하나의 위치에서만 수정하면 되고, 20개의 다른 테스트 스크립트에 있는 것이 아닙니다.
- 읽기 쉬움: 실제 테스트 파일은 평범한 영어 단계처럼 보입니다.
💻 코드 구조
실용적인 예를 살펴보겠습니다: 간단한 로그인 흐름 자동화입니다.
1. 페이지 오브젝트 클래스
이 클래스는 로그인 페이지를 매핑합니다. 웹 요소(로케이터)와 그것들과 상호작용하는 방법을 포함합니다.
java
package pages;
import org.openqa.selenium.By;
import org.openqa.git.WebDriver;
public class LoginPage {
private WebDriver driver;
// 1. Locate the Web Elements using private variables
private By usernameField = By.id("username");
private By passwordField = By.id("password");
private By loginButton = By.id("submit-btn");
// Constructor to initialize the driver
public LoginPage(WebDriver driver) {
this.driver = driver;
}
// 2. Action Methods
public void enterUsername(String username) {
driver.findElement(usernameField).sendKeys(username);
}
public void enterPassword(String password) {
driver.findElement(passwordField).sendKeys(password);
}
public void clickLogin() {
driver.findElement(loginButton).click();
}
}













