zoukankan      html  css  js  c++  java
  • selenium

    Page Object是UI自动化测试项目的最佳设计模式之一。

    主要特点:体现在对界面交互细节的封装上,使测试用例更专注于业务的操作,从而提高测试用例的可维护性

    设计思想:把元素的定位与元素的操作分层

    环境配置:pip安装(pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests poium)

    使用百度首页搜索示例:

    baidu_page.py

    页面page文件中,仅封装元素的定位,并返回元素对象;元素的具体操作仍然在测试用例中完成
    from
    poium import Page, PageElement # 导入poium对应的包 class BaiduPage(Page): # 创建BaiduPage类,继承Page类 # 调用PageElement类定位元素,timeout参数设置元素超时间(默认为10s),describe参数注释,增加可读性 search_input = PageElement(id_='kw', timeout=10, describe='百度输入框') search_button = PageElement(id_='su', timeout=10, describe='百度一下按钮')

    runtest.py

    from selenium import webdriver
    import unittest
    from baidu_page import BaiduPage  # 导入BaiduPage类
    import time
    
    
    class TestBaidu(unittest.TestCase):
    
        @classmethod
        def setUpClass(cls):
            cls.driver = webdriver.Chrome()
            cls.page = BaiduPage(cls.driver)      # 传入浏览器驱动
            cls.page.get('http://www.baidu.com')  # 调用get()方法访问URL,该方法由Page类提供
    
        def test_baidu_case1(self):
            page = self.page
            page.search_input.send_keys('python')  # 调用BaiduPage类中定义的元素对象,实现相应的输入和点击操作
            page.search_button.click()
            time.sleep(2)
            self.assertEqual(page.get_title, 'python_百度搜索')
    
        @classmethod
        def tearDownClass(cls):
            cls.driver.quit()
    
    
    if __name__ == '__main__':
        unittest.main()

    poium支持8种定位方式:

    1 PageElement(id_='id')
    2 PageElement(name='name')
    3 PageElement(class_name='class_name')
    4 PageElement(tag='tag')
    5 PageElement(link_text='link_text')
    6 PageElement(partial_link_text='partial_link_text')
    7 PageElement(xpath='xpath')
    8 PageElement(css='#id')

    参考page_objects.py中的定义:

  • 相关阅读:
    1012 最大公约数和最小公倍数问题 2001年NOIP全国联赛普及组
    数论笔记
    Codevs 1200 同余方程 2012年NOIP全国联赛提高组
    Codevs 1213 解的个数(exgcd)
    Qbxt 模拟赛&&day-8
    NOIP 模拟赛 那些年,我们学过的文化课 --致已退役的fqk神犇.
    OI路上 day -9
    P3178 [HAOI2015]树上操作
    P3979 遥远的国度
    P4092 [HEOI2016/TJOI2016]树
  • 原文地址:https://www.cnblogs.com/xiaochongc/p/12767909.html
Copyright © 2011-2022 走看看