PO是selenium中的一种页面对象设计模式(不是测试框架!是一种开展ui自动化测试的思想),把ui自动化测试中的每个页面抽象出来,将每个页面用到的业务逻辑(page类)和页面元素(locator类)各自封装起来,然后编写测试用例时只需要调用每个page中的业务逻辑方法即可。测试(用例)脚本不需要关注元素的定位情况,当元素位置发生变化时,只需修改对应页面元素的locator即可
使用页面对象模式的好处:
(1)创建可跨多个测试用例共享的可重用代码(每个测试用例只需调用page类中封装好的业务逻辑(操作)即可)。 (2)减少重复代码的数量。(如向输入框输入信息、单击操作等) (3)如果用户界面发生变化,修改脚本只需要在一个地方进行更改。
在2017年的文专门有一篇PO的文章Python Selenium设计模式-POM,实例给大家讲解POM的原理和应用,本文将实例演示,如何使用Python第三方库已经实现的PO库使用,从此不用自己来组织PO结构。
Page Objects库文档地址:https://page-objects.readthedocs.io/en/latest/
Selenium API文档地址:https://selenium-python.readthedocs.io
安装Page Objects,命令如下
>pip install page_objects
安装过程截图如下:
看下文档的目录结构,如下图所示:
一个简单的代码实例
是不是很简单?
下面看下Page Objects支持哪些元素定位的封装:
会发现支持了selenium所有的定位类型,所以是完全满足需要的。