本篇內(nèi)容主要講解“基python+selenium的二次封裝方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“基python+selenium的二次封裝方法是什么”吧!
公司主營業(yè)務(wù):成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出昌邑免費做網(wǎng)站回饋大家。首先在根目錄下創(chuàng)建子目錄名為Common作為公用數(shù)據(jù),名字隨自己取,在Common目錄下創(chuàng)建basepage.py和dir_config文件。(關(guān)于這兩個py文件要用來做什么,后面有說到)
首先我們打開dir_config文件
看名字就可以很清楚的看到這是要干什么。
logs_dir = os.path.join(base_dir,“OutPuts/logs”)
(至于為什么要這么寫,我不做介紹了,這篇文章是針對于有基礎(chǔ)來講的)
用這一行來講,就是日志存放的目錄=我箭頭指向的目錄,每個都一樣。
先把所需要存放的目錄路徑配置好,根據(jù)自己所需來配。
接下來我們來到basepage文件下
先把所需要的模塊、包導入好,至于我們?yōu)槭裁匆玫竭@些模塊,后面就曉得了,嘻嘻嘻
創(chuàng)建一個類名為 BasePage
寫一個初始化函數(shù)加上driver形參。self.driver = driver
這是等待元素操作的重寫,就是WebdriverWait().until(expected_conditions.visibility_of_element_located())的重寫
我后面還加了一個doc這個參數(shù),上面我寫了注釋就是模塊名_頁面名稱_操作名稱,這樣的話 如果報錯的話 我可以在日志、截圖、報告很清楚的看到是哪個模塊,哪個頁面,哪個操作出錯了。還有其他的參數(shù)我都帶了注釋、以及每一行代碼我都帶了注釋,我就不一一講了。
這是查找元素的重寫
為什么要寫一個查找的元素,請看下方
這是點擊操作的重寫,我直接調(diào)用了查找,這個函數(shù)就是找到元素并點擊。一遍而過。
比如send_keys()等等
并且在每次操作之前都加了日志
如logging.info(f"{doc}:元素:{locator}輸入內(nèi)容:{text}")
他這里如果是正確獲取的話,日志會顯示在哪個模塊哪個元素中輸入什么內(nèi)容,寫的一清二楚,如果錯了,相反我也打了錯誤的日志。(doc就是哪個模塊哪個頁面哪個操作下)
還有很多其他的操作,都是一樣的套路,如果覺得我這個重寫寫的不錯的可以按照我的套路去寫其他的操作
獲取元素內(nèi)容操作等等,我就不一一截圖了
比如哪里出錯了,會在指定的路徑下存在報錯日志,截圖等等
鄭州人流手術(shù)多少錢 http://mobile.chnk120.com/
而且每個錯誤都會帶上doc方便自己排查錯誤。
好了,我們來實操,用下這個框架
首先創(chuàng)建一個登陸頁面的py文件LoginPage
導入BasePage并創(chuàng)建一個類來繼承BasePage
from PageLocators.LoginLocators.login_locators import LoginLocators as loc
這個模塊是我存放login頁面的定位元素
由于我們在BasePage寫了初始化函數(shù),所以這里不需要寫了
然后我們定義一個login的函數(shù)帶上username,password參數(shù),這是代表輸入用戶名和密碼的形參
再定義一個doc
直接用我們剛才重寫的二次封裝來用
首先我們是要找到用戶名輸入框這個元素,在這個元素中輸入我們的用戶名
就可以直接用input_text()
self.input_text(loc.name_text,username,doc)
loc.name_text就是我們所定義的用戶名輸入框的定位表達式以及定位元素,我用元祖的形式括起來的??瓷厦娴膱D片
后面username就是用戶名的形參,等你測試用例調(diào)用登陸頁面操作的時候再傳用戶名數(shù)據(jù)就好了,我每一個都帶了doc,所以doc必傳。
所有的操作都是一樣的,理解一個就可以理解全部了。
樓主考慮到為什么元組的形式也可以傳進去,這里我給個特寫。
看我在locator前面加了這個符號,這個符號是解包的意思
self.driver.find_element(By.XPATH, ‘//*[contains(@name,“username”)]’)
實際上就是這個意思。
然后我傳個元祖直接引用就OK了
好了,然后我們再用pytest單元測試框架寫測試用例,然后引用LoginPage
這紅框內(nèi)就是username和password的實參啦,我這是調(diào)用登陸的測試數(shù)據(jù)。這么理解就好了。
到此,相信大家對“基python+selenium的二次封裝方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!