美文网首页selenium seldom框架
seldom学习(六):实现Page objects设计模式

seldom学习(六):实现Page objects设计模式

作者: 一如既往而已 | 来源:发表于2020-05-14 10:29 被阅读0次

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")

相关文章

网友评论

    本文标题:seldom学习(六):实现Page objects设计模式

    本文链接:https://www.haomeiwen.com/subject/zpvznhtx.html