WebDriverとPageFactoryでは、Javaを使用して新しい自動化プロジェクトを実装しています。PageObjectを作成するさまざまな方法を試しています。私たちはいくつかのアイデアに耳を傾けており、私たちがコーナーに自分自身を取り組まないようにしたいと考えています。PageFactoryを使用してWebDriver PageObjectを初期化して使用するにはどうすればよいですか?
WebDriverのドキュメントに記載されているように、PageFactoryに初期化されたWebDriverと、新しいPageObjectを作成するためのクラステンプレートを提供するのが最善でしょうか? PageObjectは、おそらくそのURLとして、自分自身について多くを知っているので
driver.get(URL);
PageObject page = PageFactory.initElements(driver, PageObject.class);
// elsewhere
class PageObject {
private WebDriver driver;
public PageObject(WebDriver driver) {
this.driver = driver;
this.validateUrl();
}
public void validateUrl() throws Exception {
if (!driver.getUrl().equals(url)) {
throw new Exception("URL not valid");
}
}
}
しかし、我々は、Pageオブジェクトが作業を行うことはできませんか?
PageObject page = new PageObject(driver);
page.goToUrl();
// elsewhere
class PageObject {
private WebDriver driver;
private String url;
public PageObject(WebDriver driver) {
PageFactory.initElements(driver, this);
}
public void goToUrl() {
driver.get(url);
}
}
私はそれの理由がある場合しかし、私は建築家によって基準の設定から逸脱したくない、PageFactoryだけで初期化対インスタンス化を行う有することに利点の多くが表示されていないと仮定。
おかげ