Page Object 패턴을 사용하여 웹 응용 프로그램 상호 작용을 모델링했습니다. 앱의 대부분 페이지에는 "로그인", "로그 아웃", "집"등과 같은 몇 가지 표준 옵션이 있습니다. 또한 모두 보호 된 WebDriver 참조가 있습니다. GrandpaClass - Selenium, Java, PageObject 패턴, 계층 구조가 깨져 있습니다.
그래서 나는 모든 페이지를 상속하는 슈퍼 슈퍼 클래스를 만들었습니다. 여기에는 보호 된 WebDriver 참조와 드라이버를 초기화하는 생성자 만 포함됩니다. PapaClass - 나는 다음 가장 페이지를 상속하는 수퍼 클래스를 만들었습니다. 그것은 GrandpaClass을 상속하고 위에 나열된 표준 메뉴 기능을 추가합니다 (로그인 등)동일한 메뉴 작업으로 인해 다른 페이지가 표시 될 수있는 경우 문제가 발생합니다. 예를 들어, 로그 아웃 할 때 로그인 페이지로 이동하거나 오류 페이지로 돌아갈 수 있습니다. 그러나 로그인 기능이 PapaClass에 있기 때문에이 클래스는 을 상속받은 다른 페이지를 반환해야합니다 (). 이렇게하면 수퍼 클래스는 해당 서브 클래스에 종속됩니다.
나는 전략과 같은 것을 사용하여 일반적인 메뉴 기능을 제외하려고 생각했습니다. 따라서 PapaClass은 기능을 유지하는 대신 Menu 개체에 대한 참조 만 유지합니다.
이 방법을 사용하는 것이 좋습니까? 아니면이 문제를 해결할 수있는 좀 더 세련된 (또는 더 간단한) 방법이 있습니까?
감사합니다.