Java 对定位器使用页面对象模型而不是使用页面工厂有什么区别?
我想弄清楚在时间和定位方式上使用POM比POF要付出的努力是什么(我知道它在定位方式上是不同的)同样在POM中我使用的是By,那么除了写,还有什么区别,我是说在使用或时间或定位元素上,那么为什么建议避免POF呢?简短回答: 如果没有页面工厂支持,POM将失去在框架中具有以下功能的优势,因为页面工厂是增强的POM,它将在框架设计和开发期间提供关键功能 长答案: 需要了解的两件事:页面对象模型(POM)和增强的POM,即页面工厂 页面对象模型(POM):这是Selenium中的一种对象设计模式,其中网页被表示为类,页面上的各种元素被定义为类上的变量。然后,所有可能的用户交互都可以作为类上的方法实现 为了支持页面对象模型,我们使用页面工厂。Selenium中的页面工厂是页面对象的扩展,可以以多种方式使用。以下是一些例子- 注意-如果我们在没有页面工厂的情况下使用POM,那么我们的框架中就不会有以下功能的优势。Java 对定位器使用页面对象模型而不是使用页面工厂有什么区别?,java,selenium,testing,Java,Selenium,Testing,我想弄清楚在时间和定位方式上使用POM比POF要付出的努力是什么(我知道它在定位方式上是不同的)同样在POM中我使用的是By,那么除了写,还有什么区别,我是说在使用或时间或定位元素上,那么为什么建议避免POF呢?简短回答: 如果没有页面工厂支持,POM将失去在框架中具有以下功能的优势,因为页面工厂是增强的POM,它将在框架设计和开发期间提供关键功能 长答案: 需要了解的两件事:页面对象模型(POM)和增强的POM,即页面工厂 页面对象模型(POM):这是Selenium中的一种对象设计模式,其中
缺点是什么?因为据我所知,西蒙·斯图尔特是2017年奥斯汀SeleniumConf硒项目负责人和页面工厂的创始人。在他的主题演讲中,他说不要使用PageFactory。本节演讲从这里开始:实际发言时间为27:25。我不明白为什么,但这里面有点道理。另外,显式等待也可以用于POM with wait.until,那么它的作用是什么呢?(甚至比隐式等待更好)不是我们不应该使用页面工厂,而是我们应该注意一些事情,比如我们不应该将web元素声明为静态的,在这种情况下,我们失去了页面工厂概念的优势。已经有多个项目使用了PageFactory,即使我在过去一年中一直使用PageFactory,但我发现框架中没有任何问题。我们得到了稳定的结果。问题是我们如何在一个框架中实现页面工厂。在POF中,使用“@FindBy或@FindBys”注释和初始化来标识元素,所有元素都是在标识时声明的(PageFactory.initElements(driver,this);。在POM中,初始化是动态进行的(例如,如果一开始就没有什么东西,那就有区别了)