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)
