美文网首页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