Page Object Factory Annotations FindBy

Dahun Yoo·2020년 5월 9일
0

Page Object Model

목록 보기
3/5

Page Object Class를, Selenium에서 제공하는 Factory 라는 개념으로 새롭게 정의할 수 있습니다.
이중 @FindBy Annotation을 써서 구현해볼 수 있습니다.


@FindBy

// By username = By.xpath("//*[@id=\'login1\']");
@FindBy(xpath = "//*[@id=\\\'login1\\\']")
WebElement username;

위 comment와 아래는 똑같은 결과입니다. @FindBy 를 사용하면 좀 더 간결해집니다.

FindBy annotation은 WebElement 요소를 지정된 parameter로 찾게됩니다.


Constructor

다만, @FindBy 와 같이 Selenium의 Page Factory 기능 (support library) 를 이용하면, 생성자에
PageFactory.initElement 를 해주어야합니다.

public LoginPageFactory(WebDriver driver){
    this.driver = driver;
    PageFactory.initElements(driver,this);
}

방식은 위와 같이, driver와 클래스를 static method로 넘겨줍니다.
(그래야 annotation이 동작합니다.)

Reference

profile
QA Engineer

0개의 댓글