关于PO模式网上一搜一大椎,此处只做简单介绍。
PO模式即page object意思是把页面提取出来。他的标准格式是三层。以下三层的解释是我根据自己项目实际应用写的。
第一层页面层里面包含了所有的页面,可在下面加其他包,比如pages.login,pages.home等,一个包下面是一个菜单下所有页面。
第二层操作层,我取名handles,里面包含页面中所有元素的操作,如果有二级包,应与页面层对应
第三层业务层,这一层主要使用了for与switch两个方法,通过for遍历传过来的map,然后通过map的key来决定调用handle中的哪个方法。
除了这三层外我又根据需求增加了公共层、工具层、数据层与测试用例层。
使用PO模式的好处是减少代码冗余,业务与实现分开,降低维护成功。
首先减少代码冗余,比如说页面元素封装我们操作时不需要每次使用时再重新定位了。不同的类文件可重复调用。
业务与实现分开可更清楚业务流程,与JAVA的页面对象吻合,不关注实现过程,只关注结果。
降低维护成本,这样可以很好理解,就是定位失败了只要修改页面层一行代码,所有使用他的地方都修改了。不需要一个一个去找哪儿需要重新定位。
根据以上思想我们创建了以下八个包
- pages放所有页面类
- handles放元素操作类
- business放业务流程类
- testcase放测试类
- testdata切割从Excel中读取到的数据
- resources放所有资源类
- common放所有与浏览器及页面元素操作有关的公共类
- utils放所有excel、xml等第三方工具类