【问题标题】:POM Model Data and Locator LocationsPOM 模型数据和定位器位置
【发布时间】:2018-11-12 14:58:32
【问题描述】:
使用 POM 模型数据模式进行测试时,最好将元素定位器放在页面对象中,还是将它们放在单独的文件中,如测试数据
pageObject
loginPage
homePage
testDate
loginPageData
homePageData
pageLocators
loginPageLocators
homePageLocators
specs
loginTest.js
非常感谢
【问题讨论】:
标签:
javascript
testing
jasmine
protractor
【解决方案1】:
对你有好处的一切都是好的。没有唯一的正确答案。因此,我将分享我在当前项目中使用 POM 的经验。
没有人想过 POM 的一个小缺点:沿着链条向下导航以到达底部定位器。
我曾与完美主义者一起工作过一段时间,他们认为如果某些东西在逻辑上有所不同,则应该将其放入单独的文件中。因此,我们将定位器与 elementFinder 和与页面交互的方法分开存储。这是合理的,但考虑一下如果我调试失败的测试需要经历什么:
- 在规范中查找失败行并跳转到导致错误的方法的源代码
- 这个方法属于扩展类,依赖于父类,所以我跳入类的源代码
- 该方法与在其他地方定义的元素交互,因此我必须打开该文件
- 元素的定位器存储在另一个文件中,所以我也需要找到该文件
最后,当我找到我的定位器时,我忘记了我在做什么,更不用说过程的繁琐和浪费时间了。
因此,在我的下一个项目中,我尝试在代码的简洁性与文件之间的整体可用性和导航便利性之间取得平衡,并对我构建代码的方式感到满意
祝你好运!