使用页面对象模型而不是对定位器使用页面工厂有什么区别?



我正在努力弄清楚在时间和定位器方式上使用POM而不是POF的努力是什么(我知道它在使用的定位器中是不同的)也在POM中使用By所以有什么区别比写作更多,我的意思是使用或时间或定位元素, 那么,为什么要推荐它来避免POF?

简短回答:

如果没有页面工厂的支持,POM将失去在框架中具有以下功能的优势,因为页面工厂增强的POM,它将在框架设计和开发期间提供关键功能。

长答案:

要了解的2件事:页面对象模型(POM)和增强型POM,即页面工厂

页面对象模型(POM):它是Selenium中的一种对象设计模式,其中网页表示为类,页面上的各种元素被定义为类上的变量。然后,所有可能的用户交互都可以作为类上的方法实现。

为了支持页面对象模型,我们使用页面工厂。Selenium 中的页面工厂是页面对象的扩展,可以以各种方式使用。下面是一些例子 -

注意 - 如果我们在没有页面工厂的情况下使用 POM,那么我们的框架中就不会有以下功能的优势。

  1. 我们可以使用页面工厂来初始化在网页类或页面对象中定义的 Web 元素。
  2. 我们可以在Page Factory中使用AjaxElementLocatorFactory,它使用显式等待,它将在访问每个元素时等待多达N No.秒。
  3. 注释@CacheLookup工厂中,当我们知道某些元素总是会出现在页面上时,缓存是有意义的。例如,在Google页面上,搜索按钮位于搜索和结果两个页面上,因此可以缓存元素来定位搜索按钮

最新更新