Java Selenium页面对象模型框架

Java Selenium页面对象模型框架,java,selenium-webdriver,webdriver,Java,Selenium Webdriver,Webdriver,我正在学习使用SeleniumWebDriver的页面对象模型,有人能给我一些建议吗 1-为什么POM中的每个页面都有构造函数来初始化webdriver对象?(如下图所示)如果webdriver未初始化,会发生什么情况 public class New_Register { WebDriver driver; public New_Register(WebDriver driver) { this.driver=driver; } @

我正在学习使用SeleniumWebDriver的页面对象模型,有人能给我一些建议吗

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中的框架还是设计模式?

如果您的页面对象继承自LoadableComponent类,强制您重写load和isloaded方法,并且您使用PageFactory.initElements为您的webelements(@Find…)初始化代理,我认为您将其用作框架。如果您处理所有这些内容,注意检查页面是否已加载、获取webelements、传递pageobject等,但使用类对页面或其部分功能进行建模,则可能会将其视为一种设计模式

如果你没有通过的驱动程序,你将不得不初始化自己的驱动程序。否则,当调用任何方法时,您将得到最喜欢的空指针异常。另外,当您调用PageFactory.initElements时,它首先在pageobject上查找一个构造函数,其中driver是唯一的参数。然后,它只查找默认的一个,如果它没有得到上一个,那么您将不得不自己处理驱动程序初始化