如果一个按钮可选地显示在页面上(或页面的一部分),它是否有资格将该部分表示为两个不同的PageObjects,其中一个PageObject提供与按钮交互的方法,而其他PageObject没有?或者,它应该是一个页面,其中的方法可以在未呈现Button时抛出异常。
什么是可维护的解决方案 - 因为在将来的版本中,按钮可能会在两种情况下都出现,或者功能可能完全改变。
答案 0 :(得分:2)
在这种情况下
按钮可能会在两种情况下都出现,或者功能可能会完全改变
可能的解决方案可以是 - 运输车设计模式。它基本上是 - 在一个外部对象中聚合重用的页面对象的导航。还根据测试要求将导航控制集中在测试系统中。该对象封装了与测试系统内导航实现相关的逻辑。因此,业务逻辑问题不会干扰系统内的导航。
我认为复合页面对象是可以接受的
可维护的解决方案
两种情况。因为它允许您通过分离可以在不同页面上重用的子对象并将它们包含在父对象中,以更“面向对象”的方式构造您的Page对象。考虑这个例子:
进一步阅读GUI automation patterns。