首页 > 解决方案 > POM 模型数据和定位器位置

问题描述

使用 POM 模型数据模式进行测试时,最好将元素的定位器放在页面对象中,还是将它们放在单独的文件中,如测试数据

pageObject
    loginPage
    homePage

testDate 
    loginPageData
    homePageData

pageLocators
    loginPageLocators
    homePageLocators
specs
    loginTest.js

非常感谢

标签: javascripttestingjasmineprotractor

解决方案


一切都很好,对你有好处。没有唯一的正确答案。因此,我将分享我在当前项目中使用 POM 的经验。

没有人想过 POM 的一个小缺点:沿着链条向下导航以到达底部定位器。

我和完美主义者一起工作了一段时间,他们认为如果某些东西在逻辑上有所不同,它应该放在一个单独的文件中。因此,我们将定位器与 elementFinder 和与页面交互的方法分开存储。这是合理的,但是如果我调试失败的测试,请考虑我需要经历的事情:

  • 在规范中查找失败的行并跳转到导致错误的方法的源代码
  • 这个方法属于扩展类,依赖于父类,所以我在类的源码中跳转
  • 该方法与在其他地方定义的元素交互,因此我必须打开该文件
  • 该元素的定位器存储在另一个文件中,所以我也需要找到该文件

最后,当我找到我的定位器时,我忘记了我在做什么,更不用说过程的繁琐和浪费时间了。

因此,在我的下一个项目中,我尝试在代码的简洁性与文件之间的整体可用性和导航易用性之间取得平衡,并对我构建代码的方式感到满意

祝你好运!


推荐阅读