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

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

最佳答案

在这种情况下


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


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

我认为Composite Page Object是可以接受的,


  可维护的解决方案


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



有关GUI automation patterns的更多信息。

10-04 14:53