testing - 创建新型 PageObject 的标准应该是什么

标签 testing selenium pageobjects

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

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

最佳答案

在这种情况下

the button may start appearing in both cases or the functionality may totally change

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

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

maintainable solution

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

enter image description here

进一步阅读 GUI automation patterns .

关于testing - 创建新型 PageObject 的标准应该是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26519085/

相关文章:

java - 无论我使用什么元素查询类型,Selenium 程序都会返回 NoSuchElementException?

python - selenium-Python,如何单击注销图像按钮

java - 当我使用 @FindBy 注释时没有出现此类元素异常,当我使用 driver.findelement(By.id()) 时工作​​正常

java - 如何对 webelement 的子元素使用页面对象工厂框架

java - Selenium webdriver 项目(Java)的架构(如文件结构)易于维护且不使用任何构建工具

c - 如何在 c 中测试线程安全的实现?

c - 使用 CUNIT 进行测试 - 演练分析/代码覆盖率

android - 如何在 Espresso 中获取 TextView 的实际颜色值

node.js - 使用覆盖的全局接口(interface)运行 mocha 测试时 tsconfig.json 编译问题

java - driver.manage().logs().get ("browser");再次调用时不起作用