好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁(yè) > 知識(shí)庫(kù) > Python自動(dòng)化測(cè)試PO模型封裝過程詳解

Python自動(dòng)化測(cè)試PO模型封裝過程詳解

熱門標(biāo)簽:梅州外呼業(yè)務(wù)系統(tǒng) 高德地圖標(biāo)注是免費(fèi)的嗎 洪澤縣地圖標(biāo)注 無錫客服外呼系統(tǒng)一般多少錢 老人電話機(jī)器人 大連crm外呼系統(tǒng) 百度地圖標(biāo)注位置怎么修改 地圖標(biāo)注視頻廣告 北京電信外呼系統(tǒng)靠譜嗎

在自動(dòng)化中, Selenium 自動(dòng)化測(cè)試中有一個(gè)名字經(jīng)常被提及 PageObject( 思想與面向?qū)ο蟮奶卣飨?同 ) ,通常 PO 模型可以大大提高測(cè)試用例的維護(hù)效率

優(yōu)點(diǎn):可重用,業(yè)務(wù)和對(duì)象分離,代碼結(jié)構(gòu)清晰,方便代碼維護(hù)

核心要素

1. 在 PO 模式中抽離封裝集成一個(gè)BasePage 類,該基類應(yīng)該擁有一個(gè)只實(shí)現(xiàn) webdriver 實(shí)例的屬性

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

3.TestCase 繼承 unittest.Testcase 類,并依賴 page 類,從而實(shí)現(xiàn)相應(yīng)的測(cè)試步驟

PO 實(shí)現(xiàn)進(jìn)入百度頁(yè)面輸入數(shù)據(jù)后進(jìn)入下一個(gè)頁(yè)面

組織代碼

1 :實(shí)現(xiàn) BasePage

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains #鼠標(biāo)操作
class BasePage():
    '''
    BasePage封裝所有界面都公用的方法。
    例如driver,find_element等
    '''
    # 實(shí)例化BasePage類時(shí),事先執(zhí)行的__init__方法,該方法需要傳遞參數(shù)
    def __init__(self,driver,url):
        self.driver = driver
        self.base_url = url
    # 進(jìn)入網(wǎng)址
    def get(self):
        self.driver.get(self.base_url)
    #元素定位,替代八大定位
    def get_element(self,*locator):
        return self.driver.find_element(*locator)
    #點(diǎn)擊
    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 :實(shí)現(xiàn) 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)
    #進(jìn)入百度
    def open_baidu(self):
        self.get()
    #輸入數(shù)據(jù)
    def input_search_content(self,text):
        self.send_text(text,By.ID,"kw")
    # 點(diǎn)擊按鈕
    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 :實(shí)現(xiàn) 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 模式的優(yōu)點(diǎn)

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

2 :頁(yè)面對(duì)象與用例分離,使得我們更好的復(fù)用對(duì)象

3 :可復(fù)用的頁(yè)面方法代碼會(huì)變得更加優(yōu)化

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

以上就是Python自動(dòng)化測(cè)試PO模型封裝的詳細(xì)內(nèi)容,更多關(guān)于Python自動(dòng)化測(cè)試PO模型的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • python中Task封裝協(xié)程的知識(shí)點(diǎn)總結(jié)
  • Python面向?qū)ο蠓庋b繼承和多態(tài)示例講解
  • Python 調(diào)用C++封裝的進(jìn)一步探索交流
  • Python如何實(shí)現(xiàn)Paramiko的二次封裝
  • 使用Python封裝excel操作指南
  • python excel和yaml文件的讀取封裝
  • python 使用paramiko模塊進(jìn)行封裝,遠(yuǎn)程操作linux主機(jī)的示例代碼
  • Python之根據(jù)輸入?yún)?shù)計(jì)算結(jié)果案例講解

標(biāo)簽:怒江 長(zhǎng)春 吉林 清遠(yuǎn) 泉州 洛陽(yáng) 安慶 岳陽(yáng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python自動(dòng)化測(cè)試PO模型封裝過程詳解》,本文關(guān)鍵詞  Python,自動(dòng)化,測(cè)試,模型,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python自動(dòng)化測(cè)試PO模型封裝過程詳解》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Python自動(dòng)化測(cè)試PO模型封裝過程詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 免费看美女脱个精光| 欧美办公室狂躁大交XXOO| 国产成人精品s8sp视频| 欧美性久久| 久久精品国产麻豆MD0068 | 在线a亚洲视频播放在线观看| 播放久久国产乱子伦精品| 18至20岁女人一级毛片| 周妍希大尺度福利视频在线| 爱情岛亚洲精品国产拍在线观看| 又黄又爽无遮挡免费视频| 黄色直播软件| chinese踩踏调教vk| 欧美精品久久人人躁人人爽 | 日本**毛茸茸xxxxx| 怀孕大肚子孕妇孕交| 国产成人无码AV片在观看| Japanese高潮喷水抽搐| 日本动漫大尺度无删减在线| 欧美丝袜激情办公室在线观看| 不要…这是厕所| 女友奶大下面又紧水又多| 太深了进去了慢点好痛| 极品女神福利视频网| 中文字幕一区二区视频| 男同高h肉爽文校园play| 中文字幕第233页| 蜜芽久久国产喷水高潮| 稀缺精品怮呦泬专区免费歌舞| 一级做a爰片性色毛片99| 丰满饥渴老妇女| 免费的黄色一级片| 国精品人妻无码一区二区三区软件| 又爽又色少妇又爽又粗| 日韩精品福利在线| 亚洲sss综合天堂久久久| eutopia在线播放动漫| 国产熟女差差网站香蕉| 国产同性卖身男男黄g片| 女m室内被调教过程| 早安三国打工人|