2016-08-14 6 views
0

私はselenium webdriverを使用してページオブジェクトモデルを学習しています。Selenium Pageオブジェクトモデルフレームワーク

1 - POMの各ページに、Webdriverオブジェクトを初期化するコンストラクタがあるのはなぜですか? (以下のようなもの)webdriverが初期化されていないとどうなりますか?

public class New_Register 
{ 
    WebDriver driver; 

    public New_Register(WebDriver driver) 
    { 
     this.driver=driver; 
    } 

    @FindBy(xpath=".//input[@id='emailAdd']") WebElement EmailID; 
} 

2 - POMはSelenium Webdriverのフレームワークかデザインパターンですか?

答えて

1

PageオブジェクトがLoadableComponentクラスを継承して、ロードメソッドとロードされたメソッドをオーバーライドし、PageFactory.initElementsを使用してWeb要素(@Find ...)のプロキシを初期化すると、フレームワークとして使用していると思います。あなたのページがロードされているか、ウェブ要素を取得しているか、pageobjectなどを渡しているかどうかをチェックしながら、このクラスのすべてを処理するならば、クラスを使用してページやその機能の一部をモデル化します。

ドライバを渡さない場合は、ドライバを自分で初期化する必要があります。そうでなければ、あなたが好きなNull Pointer Exceptionを呼び出します。また、PageFactory.initElementsを呼び出すと、ドライバを唯一の引数として持つpageオブジェクトのコンストラクタが最初に検索されます。それは、それが前のものを取得していない場合は、それだけでデフォルトのものを探します、あなたはあなた自身がドライバの初期化を処理する必要があります。