Page objects设计模式,将元素定位与业务操作进行分开处理,方便维护和管理
POM模式
- POM是什么
页面对象模型(POM)是一种设计模式,用来管理维护一组web元素集的对象库
在POM下,应用程序的每一个页面都有一个对应的page class
每一个page class维护着该web页的元素集和操作这些元素的方法 - POM的优势
POM提供了一种在UI层操作、业务流程与验证分离的模式,这使得测试代码变得更加清晰和高可读性
对象库与用例分离,使得我们更好的复用对象,甚至能与不同的工具进行深度结合应用
可复用的页面方法代码会变得更加优化
下图为非POM和POM对比图:
image.png
但是seldom API的设计理念已经将元素操作和元素定位做了整合,本身不太适合实现Page objects (POM)设计模式。
poium是Page objects设计模式最佳实践,如果想使用poium,需要单独安装。
$ pip install poium
将seldom与poium结合使用。
import seldom
from seldom import Seldom
from poium import Page, PageElement
class BaiduPage(Page):
"""baidu page"""
search_input = PageElement(id_="kw")
search_button = PageElement(id_="su")
class BaiduTest(seldom.TestCase):
"""Baidu serach test case"""
def test_case(self):
"""
A simple test
"""
page = BaiduPage(Seldom.driver)
page.get("https://www.baidu.com")
page.search_input = "seldom"
page.search_button.click()
self.assertTitle("seldom_百度搜索")
if __name__ == '__main__':
seldom.main("test_po_demo.py")
网友评论