欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

基于python+selenium如何實(shí)現(xiàn)二次封裝-創(chuàng)新互聯(lián)

這篇文章主要介紹了基于python+selenium如何實(shí)現(xiàn)二次封裝,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)是專(zhuān)業(yè)的江城網(wǎng)站建設(shè)公司,江城接單;提供成都做網(wǎng)站、網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行江城網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

這是個(gè)人對(duì)selenium.webdriver寫(xiě)的一些常用操作的二次封裝,也就相當(dāng)于重寫(xiě)了,不再使用自帶的框架,用自己寫(xiě)的框架完成。這樣的話(huà)使代碼更簡(jiǎn)潔,用自己的思想完成代碼的編寫(xiě)。

基于python+selenium如何實(shí)現(xiàn)二次封裝

首先在根目錄下創(chuàng)建子目錄名為Common作為公用數(shù)據(jù),名字隨自己取,在Common目錄下創(chuàng)建basepage.py和dir_config文件。(關(guān)于這兩個(gè)py文件要用來(lái)做什么,后面有說(shuō)到)

首先我們打開(kāi)dir_config文件

基于python+selenium如何實(shí)現(xiàn)二次封裝

看名字就可以很清楚的看到這是要干什么。
logs_dir = os.path.join(base_dir,“OutPuts/logs”)
(至于為什么要這么寫(xiě),我不做介紹了,這篇文章是針對(duì)于有基礎(chǔ)來(lái)講的)
用這一行來(lái)講,就是日志存放的目錄=我箭頭指向的目錄,每個(gè)都一樣。
先把所需要存放的目錄路徑配置好,根據(jù)自己所需來(lái)配。

接下來(lái)我們來(lái)到basepage文件下

基于python+selenium如何實(shí)現(xiàn)二次封裝

先把所需要的模塊、包導(dǎo)入好,至于我們?yōu)槭裁匆玫竭@些模塊,后面就曉得了,嘻嘻嘻

基于python+selenium如何實(shí)現(xiàn)二次封裝

創(chuàng)建一個(gè)類(lèi)名為 BasePage
寫(xiě)一個(gè)初始化函數(shù)加上driver形參。self.driver = driver

基于python+selenium如何實(shí)現(xiàn)二次封裝

基于python+selenium如何實(shí)現(xiàn)二次封裝

這是等待元素操作的重寫(xiě),就是WebdriverWait().until(expected_conditions.visibility_of_element_located())的重寫(xiě)
我后面還加了一個(gè)doc這個(gè)參數(shù),上面我寫(xiě)了注釋就是模塊名_頁(yè)面名稱(chēng)_操作名稱(chēng),這樣的話(huà) 如果報(bào)錯(cuò)的話(huà) 我可以在日志、截圖、報(bào)告很清楚的看到是哪個(gè)模塊,哪個(gè)頁(yè)面,哪個(gè)操作出錯(cuò)了。還有其他的參數(shù)我都帶了注釋、以及每一行代碼我都帶了注釋?zhuān)揖筒灰灰恢v了。

基于python+selenium如何實(shí)現(xiàn)二次封裝

這是查找元素的重寫(xiě)
為什么要寫(xiě)一個(gè)查找的元素,請(qǐng)看下方

基于python+selenium如何實(shí)現(xiàn)二次封裝

這是點(diǎn)擊操作的重寫(xiě),我直接調(diào)用了查找,這個(gè)函數(shù)就是找到元素并點(diǎn)擊。一遍而過(guò)。

比如send_keys()等等

基于python+selenium如何實(shí)現(xiàn)二次封裝

并且在每次操作之前都加了日志
如logging.info(f"{doc}:元素:{locator}輸入內(nèi)容:{text}")
他這里如果是正確獲取的話(huà),日志會(huì)顯示在哪個(gè)模塊哪個(gè)元素中輸入什么內(nèi)容,寫(xiě)的一清二楚,如果錯(cuò)了,相反我也打了錯(cuò)誤的日志。(doc就是哪個(gè)模塊哪個(gè)頁(yè)面哪個(gè)操作下)
還有很多其他的操作,都是一樣的套路,如果覺(jué)得我這個(gè)重寫(xiě)寫(xiě)的不錯(cuò)的可以按照我的套路去寫(xiě)其他的操作

基于python+selenium如何實(shí)現(xiàn)二次封裝

獲取元素內(nèi)容操作等等,我就不一一截圖了
比如哪里出錯(cuò)了,會(huì)在指定的路徑下存在報(bào)錯(cuò)日志,截圖等等

基于python+selenium如何實(shí)現(xiàn)二次封裝

而且每個(gè)錯(cuò)誤都會(huì)帶上doc方便自己排查錯(cuò)誤。

好了,我們來(lái)實(shí)操,用下這個(gè)框架
首先創(chuàng)建一個(gè)登陸頁(yè)面的py文件LoginPage

基于python+selenium如何實(shí)現(xiàn)二次封裝

導(dǎo)入BasePage并創(chuàng)建一個(gè)類(lèi)來(lái)繼承BasePage
from PageLocators.LoginLocators.login_locators import LoginLocators as loc
這個(gè)模塊是我存放login頁(yè)面的定位元素

基于python+selenium如何實(shí)現(xiàn)二次封裝

基于python+selenium如何實(shí)現(xiàn)二次封裝

由于我們?cè)贐asePage寫(xiě)了初始化函數(shù),所以這里不需要寫(xiě)了
然后我們定義一個(gè)login的函數(shù)帶上username,password參數(shù),這是代表輸入用戶(hù)名和密碼的形參
再定義一個(gè)doc
直接用我們剛才重寫(xiě)的二次封裝來(lái)用
首先我們是要找到用戶(hù)名輸入框這個(gè)元素,在這個(gè)元素中輸入我們的用戶(hù)名
就可以直接用input_text()
self.input_text(loc.name_text,username,doc)
loc.name_text就是我們所定義的用戶(hù)名輸入框的定位表達(dá)式以及定位元素,我用元祖的形式括起來(lái)的。看上面的圖片
后面username就是用戶(hù)名的形參,等你測(cè)試用例調(diào)用登陸頁(yè)面操作的時(shí)候再傳用戶(hù)名數(shù)據(jù)就好了,我每一個(gè)都帶了doc,所以doc必傳。
所有的操作都是一樣的,理解一個(gè)就可以理解全部了。
樓主考慮到為什么元組的形式也可以傳進(jìn)去,這里我給個(gè)特寫(xiě)。

基于python+selenium如何實(shí)現(xiàn)二次封裝

看我在locator前面加了這個(gè)符號(hào),這個(gè)符號(hào)是解包的意思
self.driver.find_element(By.XPATH, ‘//*[contains(@name,“username”)]')
實(shí)際上就是這個(gè)意思。
然后我傳個(gè)元祖直接引用就OK了

好了,然后我們?cè)儆胮ytest單元測(cè)試框架寫(xiě)測(cè)試用例,然后引用LoginPage

基于python+selenium如何實(shí)現(xiàn)二次封裝

這紅框內(nèi)就是username和password的實(shí)參啦,我這是調(diào)用登陸的測(cè)試數(shù)據(jù)。這么理解就好了。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“基于python+selenium如何實(shí)現(xiàn)二次封裝”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

網(wǎng)頁(yè)題目:基于python+selenium如何實(shí)現(xiàn)二次封裝-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://chinadenli.net/article24/hppje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名做網(wǎng)站手機(jī)網(wǎng)站建設(shè)電子商務(wù)動(dòng)態(tài)網(wǎng)站Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作