• python + Poium 库操作


    1、支持pip安装

    pip install poium

    2、基本用法

    from poium import PageElement,Page,PageElements

    # 1.poium支持的8种定位方法

    class SomePage(Page):
    elem_id = PageElement(id_='id')
    elem_name = PageElement(name_='name')
    elem_class = PageElement(class_name='class')
    elem_tag = PageElement(tag='input')
    elem_link_text = PageElement(link_text='this is link')
    elem_partial_link_text = PageElement(partial_link_text='is link')
    elem_xpath = PageElement(xpath='//*[@id="kw"]')
    elem_css = PageElement(css='#id')

    # 2.设置元素超时时间 默认为10s

    class BaiduPage(Page):
    search_input = PageElement(id_='kw',timeout=5)
    search_button = PageElement(id_='su',timeout=30)

    # 3.设置元素描述
    #当一个Page类中定义的元素非常多时,必须通过注释来增加可读性,这时可以使用的describe参数
    #强调:describe参数并无实际意义,只是增加了元素定位的可读性

    class LoginPage(Page):
    '''登录Page类'''
    username = PageElement(css='#loginAccount',describe='用户名')
    password = PageElement(css='#loginpwd',describe='密码')
    login_button = PageElement(css='#login_btn',describe='登录按钮')
    user_info = PageElement(css='a.nav_user_name>span',describe='用户信息')


    # 4.定位一组元素

    class ResultPage(Page):
    #定位一组元素
    search_input = PageElements(xpath='//div/h3/a')

    3、基本使用

    使用poium重写baidu_page.py

    from poium import Page,PageElement

    '''
    创建BaiduPage类,使其继承poium库中的Page类,调用PageElement类定义元素定位,
    并赋值给变量search_input和search_button。
    '''

    class BaiduPage(Page):
    '''百度Page层 百度页面封装操作到的元素'''
    search_input = PageElement(id_ = 'kw')
    search_button = PageElement(id_ = 'su')

    测试用例中使用如下:
    from TestCase.Poium.baidu_page import BaiduPage
    from selenium import webdriver
    from time import sleep
    import unittest


    class TestBaidu(unittest.TestCase):
    @classmethod
    def setUpClass(cls) -> None:
    cls.driver = webdriver.Chrome()

    @classmethod
    def tearDownClass(cls) -> None:
    cls.driver.close()

    def test_baidu_search_casel(self):
    '''测试百度搜索'''
    page = BaiduPage(self.driver)
    page.get('http://www.baidu.com')
    page.search_input = 'selenium'
    page.search_button.click()
    sleep(2)
        #断言
    self.assertEqual(page.get_title,'selenium_百度搜索')

    if __name__ == '__main__':
    unittest.main(verbosity=2)


  • 相关阅读:
    Dynamics CRM The difference between UserId and InitiatingUserId in Plugin
    Dynamics CRM2013 6.1.1.1143版本插件注册器的一个bug
    Dynamics CRM2013 从subgrid中打开快速创建窗体创建数据
    求逆元 HDU1576
    多个数的最小公倍数 HDU1019
    快速幂 HDU3003
    扩展欧几里德算法求逆元1
    筛法求素数 函数模板
    矩阵模板
    快速幂取模函数 递归模板
  • 原文地址:https://www.cnblogs.com/Teachertao/p/11900682.html
Copyright © 2020-2023  润新知