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)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐