3

나는 내 셀레늄 테스트와 PageObject 디자인 패턴을 사용하려고, 나는 페이지 클래스의 다음과 같은 설정 :PageFactory.initElements로 채워지는 WebElements은 무엇입니까?

  • PageObject 기본 클래스의 WebDriver 및 사이트의 기본 URL을 추적합니다. 사이트의 모든 페이지에 표시되는 전용 WebElement 리소스도 있습니다 (예 : 메뉴 막대와 사이드 바 링크. 이러한 리소스에 액세스 할 수있는 공개 방법이 있습니다 (예 : 로그인 및 로그 아웃.
  • UserRolePagePageObject을 확장하는 클래스. 로그인 한 사용자의 역할에 따라 이러한 클래스에는 사용자가 로그인하면 각 페이지에 유지되는 다른 개인 WebElements이 있습니다. 이러한 리소스에 액세스하는 공용 메소드도 있습니다.
  • UserRolePage 클래스를 확장하는 특정 페이지 (예 : UserLandingPage). 이것들은 페이지 고유의 WebElements과 액션을 가지고 있습니다.

내가 방법을 사용하여 새 UserLandingPage를 만들 : WebElements

UserLandingPage userLanding = PageFactory.initElements(driver, UserLandingPage.class); 

을 채워? UserLandingPage 클래스에서 볼 수있는 클래스 또는 PageFactory은 어떻게 든 모든 기본 클래스를 살펴보고 그 WebElements도 채 웁니다.

답변

1

주석을 추가 한 모든 표시 필드는 연결된 웹 요소로 초기화됩니다.

+0

부모 클래스의'login()'또는'logout()'메소드는 서브 클래스에서 볼 수 없기 때문에 사용할 수 없습니까? – rRahkola

+0

예, 그렇게 기대합니다. 비공개 WebElements는 공개 로그인/출력 방법을 통해 액세스 할 수 있습니다. init이 필요할 때 게으른로드가 더 많이 발생한다고 생각했습니다. 따라서 페이지를 인스턴스화 할 때가 아니라 요소에 액세스하려고하면 발견되지 않는 예외가 발생합니다. – jdumonti

관련 문제