• 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中的定义:

  • 相关阅读:
    NOIp2018集训test-9-4
    「THUSC 2016」成绩单 & 方块消除 (区间dp)
    NOIp2018集训test-9-2(pm)
    NOIp2018集训test-9-2(am)
    NOIp2018集训test-9-1(pm)
    NOIp2018集训test-9-1(am)
    暑假集训test-8-31(pm)
    暑假集训test-8-31(am)
    暑假集训test-8-30
    day22 笔记
  • 原文地址:https://www.cnblogs.com/xiaochongc/p/12767909.html
Copyright © 2020-2023  润新知