在使用页面工厂模型作为定位器时使用页面对象模型有什么区别?

时间:2019-06-11 08:24:51

标签: java selenium testing

我想弄清楚在POM上的时间和定位器方法上使用POM的努力是什么(我知道使用的定位器是不同的),也正在POM中使用By,所以我的意思是,在使用,时间或位置元素上的区别超过了文字,那么为什么要建议避免使用POF?

1 个答案:

答案 0 :(得分:0)

简短答案:

没有 Page Factory 支持,POM将失去在框架中具有以下功能的优势,因为 Page Factory 增强的POM ,它将提供密钥框架设计和开发过程中的功能。

长回答:

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

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

为了支持 Page Object 模型,我们使用 Page Factory 。 Selenium中的Page Factory是Page Object的扩展,可以以多种方式使用。下面的一些示例-

注意-如果我们在不使用Page Factory的情况下使用POM,那么我们将无法在框架中享受以下功能的优势。

  1. 我们可以使用 Page Factory 初始化在网页类或Page Objects中定义的Web元素。
  2. 我们可以在Page Factory中使用AjaxElementLocatorFactory,它使用显式等待,并且每次访问元素随时时,它最多等待N秒。
  3. 在工厂中的
  4. 注释 @CacheLookup 中,当我们知道页面上总是有某些元素时,则有意义。例如,在Google页面上,搜索按钮在搜索上,并且在两个页面上都显示,因此可以缓存用于定位搜索按钮的元素