2016-08-14 68 views
0

我正在學習使用硒webdriver頁面對象模型,可有人建議我在這些?硒頁面對象模型框架

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 Object繼承自LoadableComponent類,迫使您重載加載並加載方法,並且使用PageFactory.initElements初始化webelements的代理(@Find ...),我認爲您將它用作框架。如果你處理所有這些東西,檢查你的頁面是否被加載,獲取webelements,傳遞pageobject等,但你使用類來建模一個頁面或其功能的一部分,它可能被視爲一種設計模式。

如果你不通過驅動程序,你將不得不自己初始化驅動程序。否則,當你調用任何方法時,你會得到最喜歡的空指針異常。另外,當您調用PageFactory.initElements時,它首先會在driver對象作爲唯一參數的情況下查找pageobject上的構造函數。然後只有它找不到默認的那個,如果它沒有得到前一個,那麼你將不得不自己處理驅動程序的初始化。