javascript - POM 模型数据和定位器位置
问题描述
使用 POM 模型数据模式进行测试时,最好将元素的定位器放在页面对象中,还是将它们放在单独的文件中,如测试数据
pageObject
loginPage
homePage
testDate
loginPageData
homePageData
pageLocators
loginPageLocators
homePageLocators
specs
loginTest.js
非常感谢
解决方案
一切都很好,对你有好处。没有唯一的正确答案。因此,我将分享我在当前项目中使用 POM 的经验。
没有人想过 POM 的一个小缺点:沿着链条向下导航以到达底部定位器。
我和完美主义者一起工作了一段时间,他们认为如果某些东西在逻辑上有所不同,它应该放在一个单独的文件中。因此,我们将定位器与 elementFinder 和与页面交互的方法分开存储。这是合理的,但是如果我调试失败的测试,请考虑我需要经历的事情:
- 在规范中查找失败的行并跳转到导致错误的方法的源代码
- 这个方法属于扩展类,依赖于父类,所以我在类的源码中跳转
- 该方法与在其他地方定义的元素交互,因此我必须打开该文件
- 该元素的定位器存储在另一个文件中,所以我也需要找到该文件
最后,当我找到我的定位器时,我忘记了我在做什么,更不用说过程的繁琐和浪费时间了。
因此,在我的下一个项目中,我尝试在代码的简洁性与文件之间的整体可用性和导航易用性之间取得平衡,并对我构建代码的方式感到满意
祝你好运!
推荐阅读
- machine-learning - 验证错误没有改变但训练损失减少的可能原因是什么?
- three.js - Three.js:将线条附加到与角相同角度的立体角
- json - SWIFT:将 JSON 数据存储在数组中
- vb.net - 如何将两个ListBox的项目(代表数字)的值相加
- python - 从单个属性中提取多个文本数据
- apache-spark - Spark - 如何重命名orc文件(不是表)中的列
- c++ - 将指针传递给导致第二次调用使程序崩溃的函数
- python - TypeError:无法根据规则“安全”使用 hvPlot 和 datashade 将数组数据从 dtype('int64') 转换为 dtype('int32')
- javascript - 每次进入屏幕时重新获取数据
- c# - 无法使用 JWT 方法(C#)生成新令牌