婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python自動化測試PO模型封裝過程詳解

Python自動化測試PO模型封裝過程詳解

熱門標簽:梅州外呼業務系統 高德地圖標注是免費的嗎 洪澤縣地圖標注 無錫客服外呼系統一般多少錢 老人電話機器人 大連crm外呼系統 百度地圖標注位置怎么修改 地圖標注視頻廣告 北京電信外呼系統靠譜嗎

在自動化中, Selenium 自動化測試中有一個名字經常被提及 PageObject( 思想與面向對象的特征相 同 ) ,通常 PO 模型可以大大提高測試用例的維護效率

優點:可重用,業務和對象分離,代碼結構清晰,方便代碼維護

核心要素

1. 在 PO 模式中抽離封裝集成一個BasePage 類,該基類應該擁有一個只實現 webdriver 實例的屬性

2. 每一個 page 都繼承 BasePage ,通過 driver 來管理本 page 中元素,將 page 中的操作封裝成一個個方法

3.TestCase 繼承 unittest.Testcase 類,并依賴 page 類,從而實現相應的測試步驟

PO 實現進入百度頁面輸入數據后進入下一個頁面

組織代碼

1 :實現 BasePage

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains #鼠標操作
class BasePage():
    '''
    BasePage封裝所有界面都公用的方法。
    例如driver,find_element等
    '''
    # 實例化BasePage類時,事先執行的__init__方法,該方法需要傳遞參數
    def __init__(self,driver,url):
        self.driver = driver
        self.base_url = url
    # 進入網址
    def get(self):
        self.driver.get(self.base_url)
    #元素定位,替代八大定位
    def get_element(self,*locator):
        return self.driver.find_element(*locator)
    #點擊
    def left_click(self,*locator):
        ActionChains(self.driver).click(self.get_element(*locator)).perform()
    #輸入
    def send_text(self,text,*locator):
        self.driver.find_element(*locator).send_keys(text)
    #清除
    def clear_text(self, *locator):
        self.driver.find_element(*locator).clear()
    # 表單切換
    def switch_iframe(self,*locator):
        self.driver.switch_to.frame(self.driver.find_element(*locator))
    #窗口切換
    def switch_window(self,n):
        self.driver.switch_to.window(self.driver.window_handles[n])

2 :實現 SearchPage

from selenium.webdriver.common.by import By
from base.base_page import BasePage
class SearchOne(BasePage):
    def __init__(self,driver,url):
        BasePage.__init__(self,driver,url)
    #進入百度
    def open_baidu(self):
        self.get()
    #輸入數據
    def input_search_content(self,text):
        self.send_text(text,By.ID,"kw")
    # 點擊按鈕
    def click_baidu_search(self):
        self.left_click(By.ID, "su")
    def click_open_hao(self):
        self.left_click(By.XPATH,".//*[@id='1']/h3/a[1]")

3 :實現 TestCase

import unittest
from selenium import webdriver
from page.page_one import SearchOne
from page.page_two import SearchTwo
class BaiBu(unittest.TestCase):
    @classmethod
    def setUpClass(cls) -> None:
        cls.driver = webdriver.Firefox()
        cls.driver.implicitly_wait(10)
    def test001(self):
        url="http://www.baidu.com"
        s = SearchOne(self.driver,url)
        s.open_baidu()
        s.input_search_content("123")
        s.click_baidu_search()
        s.click_open_hao()
        self.driver.switch_to.window(self.driver.window_handles[1])
    def test002(self):
        s=SearchTwo(self.driver,"")
        s.open_baidu_map()
    def tearDown(self) -> None:
    #      self.driver.quit()
        pass
if __name__ == '__main__':
    unittest.main()

PO 模式的優點

1:PO 提供了一種業務流程與頁面元素操作分離的模式,這使得測試代碼變得更加清晰

2 :頁面對象與用例分離,使得我們更好的復用對象

3 :可復用的頁面方法代碼會變得更加優化

4 :更加有效的命令方式使得我們更加清晰的知道方法所操作的 UI 元素

以上就是Python自動化測試PO模型封裝的詳細內容,更多關于Python自動化測試PO模型的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • python中Task封裝協程的知識點總結
  • Python面向對象封裝繼承和多態示例講解
  • Python 調用C++封裝的進一步探索交流
  • Python如何實現Paramiko的二次封裝
  • 使用Python封裝excel操作指南
  • python excel和yaml文件的讀取封裝
  • python 使用paramiko模塊進行封裝,遠程操作linux主機的示例代碼
  • Python之根據輸入參數計算結果案例講解

標簽:怒江 長春 吉林 清遠 泉州 洛陽 安慶 岳陽

巨人網絡通訊聲明:本文標題《Python自動化測試PO模型封裝過程詳解》,本文關鍵詞  Python,自動化,測試,模型,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python自動化測試PO模型封裝過程詳解》相關的同類信息!
  • 本頁收集關于Python自動化測試PO模型封裝過程詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 台北县| 遵义县| 玛曲县| 林芝县| 游戏| 安陆市| 调兵山市| 南郑县| 麻栗坡县| 汶上县| 张北县| 建宁县| 黄大仙区| 都兰县| 大洼县| 承德市| 文安县| 西林县| 自治县| 杭锦旗| 响水县| 桐梓县| 榆社县| 高尔夫| 富民县| 包头市| 玉龙| 开平市| 海口市| 成都市| 中方县| 靖边县| 金坛市| 永顺县| 绿春县| 丹阳市| 香港 | 榆中县| 天镇县| 隆子县| 临沂市|