これは、Webdriver に適用される PageObjects/Pagefactory の実装の理解を試みたものです。
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 をインスタンス化し、それらのメソッドを呼び出しますが、ブラウザのセットアップはテスト実行ごとに 1 回だけ呼び出されます。
問題は次のとおりです。
- 以下のようなメソッドを宣言して Pagefactory を呼び出す必要がありますか?
public MyPage method() { Login() などのメソッドを呼び出します return PageFactory.initElements(driver, MDNSLoginPage.class); }
または、デフォルトのコンストラクターから同じ PageFactory を呼び出す必要があります
私の理解/実装は正しいですか?