java - Selenium 页面对象模型框架

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

最佳答案

如果您的页面对象继承自 LoadableComponent 类,强制您重写 load 和 isloaded 方法,并且您使用 PageFactory.initElements 来初始化 webelements 的代理(@Find...),我认为您正在将其用作框架。如果您处理所有这些事情,负责检查页面是否已加载、获取网络元素、传递页面对象等,但您使用类来建模页面或其部分功能,那么它可能被视为一种设计模式。

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

关于java - Selenium 页面对象模型框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38942875/

相关文章:

java - Android SQlite 更新只是不工作,没有错误

java - javax.servlet.GenericServlet.getServletContext 的 NullPointerException(GenericServlet.java :205)

window - 如何让firefox webdriver浏览器窗口位于桌面最前面

selenium - 如何在selenium webdriver中上传具有相对路径的文件

java - 以编程方式运行 TestNG 时,如何从测试类中获取 @Test 方法

java - 如何在 Spring xml 配置文件中初始化 Java Date 对象?

java - Android : Unable to start activity componentInfo 致命异常

java - google 搜索中的 org.openqa.selenium.ElementNotVisibleException

python - Selenium Post 方法

c# - Selenium click 方法正在执行然后超时