Вот моя попытка понимания реализации PageObjects / Pagefactory применительно к Webdriver:
1. Create the following structure in eclipse
--> com.example.qa.pageobjects
--> LoginPage.java
Every class in this package has something like:
@FindBy(how = How.NAME, using = "logonName")
private WebElement logonNameField;
and the Methods, call Webelement, and call methods on them, like:
logonNameField.sendKeys("username");
Which are called from ScenrioTests.
--> HomePage.java (i go there after i login)
--> Page.java (abstract)
--> com.example.qa.setup
--> Browser.java
--> FirefoxBrowser.java (Code specific to FFox)
--> ChromeBrowser.java (Code Specific to Chrome)
--> com.example.qa.test
--> Scenario1234.java
--> Scenario2345.java
Эти классы сценария создают экземпляры PageObjects и методов Call в них, в то время как настройка браузера вызывается только один раз за выполнение теста.
Теперь вопрос:
- Должен ли я объявить метод, как показано ниже, и вызвать Pagefactory?
общедоступный метод MyPage () {Вызов таких методов, как Login () и т. д. return PageFactory.initElements (driver, MDNSLoginPage.class); }
Или, следует ли мне вызывать тот же PageFactory из конструктора по умолчанию
Правильно ли мое понимание / реализация?