【问题标题】:What should be the criteria for creating a new type of PageObject创建新型PageObject的标准应该是什么
【发布时间】:2014-10-23 14:02:58
【问题描述】:

如果一个按钮可选地显示在页面(或页面的一部分)上,是否有资格将该部分表示为两个不同的 PageObject,其中一个 PageObject 提供与按钮交互的方法,而另一个 PageObject 不提供?或者,它应该是一个页面,其中一个方法可以在未呈现 Button 时引发异常。

什么是可维护的解决方案 - 因为在未来的版本中,按钮可能会在这两种情况下开始出现,或者功能可能会完全改变。

【问题讨论】:

  • 如果按钮将您带到一个新页面,则该按钮应返回该新页面对象的实例,否则它是当前页面对象的一部分。至少这是我的理解。
  • @bcar 我的问题不在于按钮应该返回什么。我在问一个页面是否根据某些用户操作显示一个按钮,我是否应该为同一页面有两个页面对象,一个具有按钮功能,另一个没有按钮。

标签: testing selenium pageobjects


【解决方案1】:

在这种情况下

按钮可能会在两种情况下开始出现,或者功能可能会完全改变

可能的解决方案是——Transporter 设计模式。它基本上是 - 将重用的页面对象聚合到一个外部对象中的导航。还可以根据测试要求在被测系统中集中导航控制。该对象封装了与测试系统内的导航实现相关的逻辑。因此业务逻辑的问题不会干扰系统内的导航。

我认为复合页面对象是可以接受的并且

可维护的解决方案

在这两种情况下。因为它将允许您通过分离可以在不同页面上重用的子对象并将它们包含到父对象中来以更“面向对象”的方式构造您的 Page 对象。考虑这个例子:

进一步阅读GUI automation patterns

【讨论】:

  • 我同意这个答案。说得好!
猜你喜欢
  • 1970-01-01
  • 2010-11-04
  • 1970-01-01
  • 1970-01-01
  • 2018-10-17
  • 2021-03-26
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
相关资源
最近更新 更多