Python3+Selenium Web自动化测试案例分享⑴——框架设计详解(POM)

一、POM模型介绍

1.POM是什么?

Page Object Model (POM) 直译为“页面对象模型”,这种设计模式旨在为每个待测试的页面创建一个页面对象(class),将那些繁琐的定位操作封装到这个页面对象中,只对外提供必要的操作接口。
Python3+Selenium Web自动化测试案例分享⑴——框架设计详解(POM)
 
2.POM模型的优点

a. 把web ui对象从测试脚本分离,业务代码和测试脚本分离。

b. 每一个页面对应一个页面类,页面的元素写到这个页面类中。

c. 页面类主要包括该页面的元素定位,和这些元素相关的业务操作代码封装的方法。

d. 代码复用,从而减少测试脚本代码量。

e. 层次清晰,同时支持多个编写自动化脚本开发,例如每个人写哪几个页面,不影响他人。

3.POM模型的核心要素:

a.抽象封装一个BasePage基类,基类应该拥有一个指向webdriver实例的属性

b.每一个Page都应该继承BasePage,并通过driver来管理本Page的元素,且将Page才操作都封装成一个个的方法

c. TestCase应该继成unittest.Testcase类,并依赖相应的Page类来实现相应的test step(即测试步骤)

二、文件目录

1.目录结构图

Python3+Selenium Web自动化测试案例分享⑴——框架设计详解(POM)

2.目录详解

下图是框架中各个目录和文件作用的简单介绍,后面的章节会具体介绍如何封装这些方法。

Python3+Selenium Web自动化测试案例分享⑴——框架设计详解(POM)