1.PO来源:
- https://martinfowler.com/bliki/PageObject.html
- https://github.com/SeleniumHQ/selenium/wiki/PageObjects
2.PO模式原则
- 用公共方法代表UI所提供的功能
- 方法应该返回其他的PageObject对象或用于断言的数据
- 同样的行为不同的结果可以建模为不同的方法(例如登录成功与失败)
- 不要在公共方法内部加断言
- 不要暴露页面内部元素
- 不需要建模UI内的所有功能
3.PO主要组成元素
- page对象:完成对页面的封装
- Driver对象:完成对web、android、ios、接口的驱动
- 测试用例:调用page对象实现业务并断言
- 数据封装:配置文件和数据驱动
- Utils:其他功能封装,改进原生框架不足
4.抽象原则:
- 抽离变化部分, android与ios,页面一致,使用同一个数据文件维护。小程序、h5、web差别很大,独立封装为不同的数据文件 (此条指数据驱动文件)
- 封装层次不要太深