예컨데, homepage
와 loginPage
를 테스트한다고 하면,
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를 추가하게 된다면, 테스트케이스 내부에 길게 정의한다던지, 이미 정의된 내용을 다시 중복정의한다던지의 수고스러움을 조금은 덜 수 있게된다.