PageObject 顾名思义就是 面向页面对象的设计
从UI自动化结合page(页面)对象来说,编写用例需要几个要素?
- 数据(例如账号密码,可选)
- 定位(元素定位)
- 基础操作(点击、输入等)
- 逻辑(基础操作组成的逻辑,例如输入账号密码点击登录按钮)
那么,这么设计的好处在于什么?
- 解耦,每一层之间互不影响
- 高维护性,实践中发现,业务的逻辑层是基本不会变的,唯一经常会变得只有定位,所以将定位与用例分离,日常只要维护定位即可
- 结构清晰明了,层次分明
- 复用性高
PageObject框架分层
- 公用方法层(我们第八章讲的将基础操作封装模块、日志、读取配置、数据库、接口等)
- 页面数据层(原则以page为单位,储存用例所需数据)
- 页面定位层(原则以page为单位,储存用例所需定位,建议采用(By.XXX, "")这种元组形式的定位)
- 页面逻辑层(原则以page为单位,用例所需的基础逻辑操作,例如:输入账号密码点击登录按钮)
- 用例层(多用数据驱动的用例设计,数据+定位+逻辑+断言)
demo源码://www.greatytc.com/p/18042b13470d
python package分层