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

  • 相关阅读:
    201521123105 第8周Java学习总结
    201521123105 第七周Java学习总结
    201521123105 第六周Java学习总结
    201521123105 第四周Java学习总结
    201521123105 第三周Java学习总结
    201521123105《jave程序》第二周学习总结
    201521123105 《Java程序设计》第1周学习总结
    网络15软工个人作业5——软件工程总结
    个人作业4——alpha阶段个人总结
    软件工程网络15个人作业3——案例分析
  • 原文地址:https://www.cnblogs.com/xiaochongc/p/12767909.html
Copyright © 2011-2022 走看看