Creating PageObject Constructor in Class

Dahun Yoo·2020년 5월 8일
0

Page Object Model

목록 보기
2/5

예컨데, homepageloginPage를 테스트한다고 하면,

Homepage 라는 java 파일 생성
Homepage에서 확인할 수 있는 WebElement를 모두 식별.
Homepage 오브젝트를 정의.
loginPage 라는 java파일 생성.
loginPage 에서 확인할 수 있는 WebElement를 모두 식별.
loginPage 오브젝트를 정의.

👉🏻 즉, 페이지별로 파일을 생성해주어야한다.


이후 Testcase를 생성.
로그인이라는 케이스를 한다면, 홈페이지 클래스 에서 로그인하는 메소드를 구현해놓아야한다.


driver의 경우, 테스트클래스에서 오브젝트를 생성해준 다음, 페이지 클래스로 parameter의 형식으로 넘겨준다.

@Test
public void Login() {

    System.setProperty("webdriver.chrome.driver",
    "/Users/yoodahun/Documents/Github/Java/Selenium WebDriver with Java/chromedriver");
    WebDriver driver = new ChromeDriver();
    driver.get(“https://mail.rediff.com/cgi-bin/login.cgi”);

    LoginPage loginPage = new LoginPage(driver);

    loginPage.emailId().sendKeys("Hello");
    loginPage.password().sendKeys("password");
    loginPage.submit().click();

}

테스트케이스 파일에서는 어떠한 WebElement도 식별하지 않았다.
이렇게 테스트케이스 파일과 Page파일을 별도로 분리하여 관리한다면, 기존에 존재하는 element에 대해 새로운 테스트케이스를 추가한다고 하여도 쉽게 추가 및 관리를 할 수 있다.

반대로 페이지가 수정되어 새로운 element를 추가하게 된다면, 테스트케이스 내부에 길게 정의한다던지, 이미 정의된 내용을 다시 중복정의한다던지의 수고스러움을 조금은 덜 수 있게된다.

profile
QA Engineer

0개의 댓글