PageObject 见名思意,就是页面对象。说白就是把页面元素定位和页面元素操作分开。
PageObject在实战过程中我们回对脚本实现进行分层。通常做法是分三层:
- 对象库层
- 逻辑层
- 业务层
对象层用于存放我们的页面元素和一些特殊控件操作。逻辑层则是一些封装好的功能用例模块。业务层则是我们真正的测试用例的操作。
当然如果我们的测试数据量大时,我们还可以在三层基础上再加一层 数据层,用于存放我们的测试数据,这也是比较常规的做法。
- 对象库层
- 逻辑层
- 业务层
- 数据层
它的好处如下:
- 集中管理元素对象,便于应对元素的变化
- 集中管理一个page内的公共方法,便于测试用例的编写
- 后期维护方便,不需要重复的复制和修改代码
具体的做法如下:
- 创建一个页面的类
- 在类的构造方法中,传递 WebDriver 参数。
- 在测试用例的类中,实例化页面的类,并且传递在测试用例中已经实例化的WebDriver对象。
- 在页面的类中,编写该页面的所有操作的方法
- 在测试用例的类中,调用这些方法