最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

在這里插入圖片描述

首先在根目錄下創(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)容操作等等,我就不一一截圖了
比如哪里出錯了,會在指定的路徑下存在報錯日志,截圖等等

在這里插入圖片描述

而且每個錯誤都會帶上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就是我們所定義的用戶名輸入框的定位表達式以及定位元素,我用元祖的形式括起來的。看上面的圖片
后面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ù)。這么理解就好了。
好了,這篇文章介紹完了。是不是很簡潔、很實用、也方便后續(xù)修改,實際上就是為操作頁面用自己的思想做了優(yōu)化。
如果你覺得還不錯的話 也可以按照我寫的這種去修改,當然有自己的想法也更好。
然后這邊我還放了pytest的一些內(nèi)容,有些小伙伴沒看懂的先不要管,后續(xù)我會單獨寫一篇關(guān)于pytest單元測試框架的使用。
當然有不懂的可以留言,想進群一起學習的可以私聊我
一起加油呀—呼呼呼?。?!

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Pytorch可視化之Visdom使用實例

    Pytorch可視化之Visdom使用實例

    Visdom 是一個專門用于 PyTorch 的交互式可視化工具,可以對實時數(shù)據(jù)進行豐富的可視化,幫助我們實時監(jiān)控在遠程服務(wù)器上進行的科學實驗,這篇文章主要給大家介紹了關(guān)于Pytorch可視化之Visdom使用的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • 用Python實現(xiàn)定時備份Mongodb數(shù)據(jù)并上傳到FTP服務(wù)器

    用Python實現(xiàn)定時備份Mongodb數(shù)據(jù)并上傳到FTP服務(wù)器

    這篇文章主要介紹了用Python實現(xiàn)定時備份Mongodb數(shù)據(jù)并上傳到FTP服務(wù)器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Python程序設(shè)計入門(2)變量類型簡介

    Python程序設(shè)計入門(2)變量類型簡介

    這篇文章主要介紹了Python變量類型,需要的朋友可以參考下
    2014-06-06
  • Python之維度dim的定義及其理解使用方式

    Python之維度dim的定義及其理解使用方式

    這篇文章主要介紹了Python之維度dim的定義及其理解使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python?包管理器pip入門教程

    Python?包管理器pip入門教程

    這篇文章主要為大家介紹了Python?pip包管理器入門教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • python關(guān)鍵字傳遞參數(shù)實例分析

    python關(guān)鍵字傳遞參數(shù)實例分析

    在本篇文章里小編給大家整理的是一篇關(guān)于python關(guān)鍵字傳遞參數(shù)實例分析內(nèi)容,有需要的朋友們可以學習參考下。
    2021-06-06
  • python回溯算法實現(xiàn)全排列小練習分享

    python回溯算法實現(xiàn)全排列小練習分享

    這篇文章主要給大家分享的是python回溯算法實現(xiàn)全排列小練習,文章根據(jù)例子:輸入列表L(不含重復元素),輸出L的全排列展開學習,需要的小伙伴可以參考一下
    2022-02-02
  • 詳解修改Anaconda中的Jupyter Notebook默認工作路徑的三種方式

    詳解修改Anaconda中的Jupyter Notebook默認工作路徑的三種方式

    這篇文章主要介紹了詳解修改Anaconda中的Jupyter Notebook默認工作路徑的三種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)

    PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)

    這篇文章主要介紹了PyQt5.6+pycharm配置以及pyinstaller生成exe,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • Python讀取csv、Excel文件生成圖表的方法

    Python讀取csv、Excel文件生成圖表的方法

    這篇文章主要介紹了Python讀取csv、Excel文件生成圖表,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07

最新評論

延吉市| 兴化市| 洞头县| 全州县| 锦州市| 毕节市| 景东| 新津县| 闵行区| 宁明县| 右玉县| 镇康县| 奈曼旗| 德庆县| 攀枝花市| 新绛县| 邹平县| 公安县| 罗江县| 阜平县| 通渭县| 航空| 辉县市| 平舆县| 十堰市| 兴和县| 财经| 上高县| 沈丘县| 鹤岗市| 蓝山县| 新田县| 郎溪县| 伊金霍洛旗| 靖西县| 台东县| 永靖县| 满城县| 洛扎县| 连江县| 太保市|