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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。