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)



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM