欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2020年01月06日 14:25:12   作者:何鳳祥在努力中  
這篇文章主要介紹了基于python+selenium的二次封裝的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

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

在這里插入圖片描述

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

首先我們打開dir_config文件

在這里插入圖片描述

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

接下來我們來到basepage文件下

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

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

比如send_keys()等等

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

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

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

在這里插入圖片描述

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

在這里插入圖片描述

在這里插入圖片描述

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

在這里插入圖片描述

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

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

在這里插入圖片描述

這紅框內(nèi)就是username和password的實(shí)參啦,我這是調(diào)用登陸的測(cè)試數(shù)據(jù)。這么理解就好了。
好了,這篇文章介紹完了。是不是很簡(jiǎn)潔、很實(shí)用、也方便后續(xù)修改,實(shí)際上就是為操作頁(yè)面用自己的思想做了優(yōu)化。
如果你覺得還不錯(cuò)的話 也可以按照我寫的這種去修改,當(dāng)然有自己的想法也更好。
然后這邊我還放了pytest的一些內(nèi)容,有些小伙伴沒看懂的先不要管,后續(xù)我會(huì)單獨(dú)寫一篇關(guān)于pytest單元測(cè)試框架的使用。
當(dāng)然有不懂的可以留言,想進(jìn)群一起學(xué)習(xí)的可以私聊我
一起加油呀—呼呼呼!?。?/p>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python中os.path用法分析

    Python中os.path用法分析

    這篇文章主要介紹了Python中os.path用法,實(shí)例分析了os.path的各種常用方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • 基于python檢查矩陣計(jì)算結(jié)果

    基于python檢查矩陣計(jì)算結(jié)果

    這篇文章主要介紹了基于python檢查矩陣計(jì)算結(jié)果,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 淺析PyCharm 的初始設(shè)置(知道)

    淺析PyCharm 的初始設(shè)置(知道)

    這篇文章主要介紹了PyCharm 的初始設(shè)置(知道),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Python的Matplotlib庫(kù)圖像復(fù)現(xiàn)學(xué)習(xí)

    Python的Matplotlib庫(kù)圖像復(fù)現(xiàn)學(xué)習(xí)

    這篇文章主要給大家介紹了關(guān)于如何利用Matplotlib庫(kù)圖像復(fù)現(xiàn),matplotlib模塊提供了很高級(jí)和非常友好的使用方式,使用起來也是非常方便的,需要的朋友可以參考下
    2021-08-08
  • Python Process創(chuàng)建進(jìn)程的2種方法詳解

    Python Process創(chuàng)建進(jìn)程的2種方法詳解

    這篇文章主要介紹了Python Process創(chuàng)建進(jìn)程的2種方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python線程threading模塊用法詳解

    Python線程threading模塊用法詳解

    這篇文章主要介紹了Python線程threading模塊用法,結(jié)合實(shí)例形式總結(jié)分析了Python線程threading模塊基本功能、原理、相關(guān)函數(shù)使用方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • python版本單鏈表實(shí)現(xiàn)代碼

    python版本單鏈表實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了python版本單鏈表實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • tensorflow 實(shí)現(xiàn)打印pb模型的所有節(jié)點(diǎn)

    tensorflow 實(shí)現(xiàn)打印pb模型的所有節(jié)點(diǎn)

    今天小編就為大家分享一篇tensorflow 實(shí)現(xiàn)打印pb模型的所有節(jié)點(diǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • tensorflow TFRecords文件的生成和讀取的方法

    tensorflow TFRecords文件的生成和讀取的方法

    本篇文章主要介紹了tensorflow TFRecords文件的生成和讀取的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • 對(duì)Python 語(yǔ)音識(shí)別框架詳解

    對(duì)Python 語(yǔ)音識(shí)別框架詳解

    今天小編就為大家分享一篇對(duì)Python 語(yǔ)音識(shí)別框架詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12

最新評(píng)論