PO模型介绍

本文介绍了Selenium自动化测试中的PageObject(PO)模型,阐述了其提高测试用例维护效率的优势,包括代码重用、业务与对象分离、结构清晰。详细讲解了PO的核心要素,如BasePage类、页面元素封装以及测试用例的组织。同时对比了非PO实现,突显PO模型在处理不同环境、元素等待和多场景测试时的高效性。最后,通过代码示例展示了BasePage、SearchPage和TestCase的实现,并总结了PO模型的四大优点。
摘要由CSDN通过智能技术生成

PO模型介绍


在自动化中,Selenium自动化测试中有一个名字经常被提及PageObject(思想与面向对象的特征相 同),通常PO模型可以大大提高测试用例的维护效率


优点:重用,业务和对象分离,代码结构清晰,方便代码维护

PO的核心要素

1.在PO模式中抽离封装集成一个BasePage类,该基类应该拥有一个只实现webdriver实例的属性 2.每一个page都继承BasePage,通过driver来管理本page中元素,将page中的操作封装成一个个方法

3.TestCase继承unittest.Testcase类,并依赖page类,从而实现相应的测试步骤

非PO实现

代码展示

from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
driver.find_element_by_id("kw").send_keys("jack")
sleep(1)
driver.find_element_by_id("su").click()
sleep(2)
driver.quit()

 代码分析


不同的运行脚本环境,游览器不同:驱动webdriver.Firefox()可以剥离 请求地址的变化(生产环境和测试环境):url = http://www.baidu.com可以剥离 操作元素时,常常要等待元素加载完成方可进行操作:可以把webdriver提供的find_element*方法封 装,在元素操作前,先判断元素是否可以操作 实际测试场景中,可能有多个测试场景,如果每个测试场景都需要维护url,游览器驱动,元素定位等,效 率会非常低 因此基于以上分析,是否可以设计一个所有测试界面(selenium本身是B/S系统开展测试)的基类,来 维护公共的方法,此处定义名字为BasePage.py,用于存放页面公共方法及webdriver原有方法二次封装等。


PO实现

实现BasePage

BasePage代码实现

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains #鼠标操作
class BasePage():
'''BasePage封装所有界面都公用的方法。例如driver,find_element等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值