Selenium页面对象模型框架

时间:2016-08-14 13:50:14

标签: java selenium-webdriver webdriver

我正在使用selenium 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 个答案:

答案 0 :(得分:1)

如果您的Page Object继承自LoadableComponent类,强制您覆盖load和isloaded方法,并且您使用PageFactory.initElements初始化您的webelements的代理(@Find ...),我认为您将它用作框架。如果您处理所有这些事情,负责检查您的页面是否已加载,获取webelements,传递pageobject等,但您使用类来模拟页面或其部分功能,它可能被视为设计模式。

如果您没有传入驱动程序,则必须自己初始化驱动程序。否则,当您调用任何方法时,您将获得最喜欢的Null Pointer Exception。此外,当您调用PageFactory.initElements时,它首先在页面对象上查找构造函数,并将驱动程序作为唯一参数。然后只有它找到默认值,如果它没有得到前一个,那么你将不得不自己处理驱动程序初始化。