selenium - Cucumber-jvm 中的更好做法是什么
问题描述
对于构建黄瓜测试套件的更好方法,我们在办公室存在分歧。这是在单击表单中的单选按钮的上下文中。这两种方法是:
- 使用页面对象模型。将单选按钮定义为页面对象中的 Web 元素,并传入值以选择选项作为功能文件中的输入。
- 将选择器(元素属性“名称”)和值作为特征文件中的输入传递。通过传递选择器和值,我们只需要一个根据传递的选择器和值动态单击选项的方法。
选项1:
优点:
- 由于 webElements 是在 PageObject 中定义的,因此您不必在每次使用时都传递选择器。你只需要使用变量。
- 从长远来看更好,因为您只需更改/删除 PageObject 中的 WebElement 而不是每次使用时
- 使用变量可以让您利用 IDE 的内置功能。重构、删除、查找用法等。
- 更符合我们概述的页面对象模型,因此(在我看来)是更好的实践
选项 2:
优点:
- 不必定义每一个元素,从而减少代码膨胀(我的老板说这不是优先事项)
- 开发更顺畅,因为您不必关心定义每个新成员变量,您只需将选择器作为输入传递。
在我看来,选项 2 在短期内可能会更好,但随着我们的开发和规模扩大,在类中定义 webElements 会更有益。而且我还认为使用选项 2 进行开发实际上会更加笨拙,因为每次使用它时都需要找到选择器。
我们都认为对方客观上更差,但无法达成协议。客观上哪一个更好?从行业标准的角度来看,哪种做法更好?
解决方案
我会毫不犹豫地在功能文件中选择页面对象而不是选择器,因为功能文件和页面对象应该代表不同的抽象级别。页面对象当然可以以任何您认为合适的方式共享通用功能以减少臃肿。
推荐阅读
- c# - 在 Windows 服务中将用户登录到 google 帐户(无需浏览器和用户操作)
- c++ - 如何将 .lib 文件添加到我的 cmake 项目
- ios - Swift UITableView(无部分)过滤到带有部分的表格视图
- python - 操作嵌套列表的函数
- sql - SQL Pivot总计行?
- json - 在本机 Tizen 中解析 JSON
- ubuntu - 如何更改 Virtuoso 数据库文件?
- excel - 跨多列查找电子邮件地址并将其复制到一列
- java - 使用模块作为库 IntelliJ
- java - 你可以为spring security userdetails用户创建一个外键吗?