91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基python+selenium的二次封裝方法是什么

發布時間:2021-11-19 14:03:39 來源:億速云 閱讀:131 作者:iii 欄目:編程語言

本篇內容主要講解“基python+selenium的二次封裝方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“基python+selenium的二次封裝方法是什么”吧!

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

  首先我們打開dir_config文件

  看名字就可以很清楚的看到這是要干什么。

  logs_dir = os.path.join(base_dir,“OutPuts/logs”)

  (至于為什么要這么寫,我不做介紹了,這篇文章是針對于有基礎來講的)

  用這一行來講,就是日志存放的目錄=我箭頭指向的目錄,每個都一樣。

  先把所需要存放的目錄路徑配置好,根據自己所需來配。

  接下來我們來到basepage文件下

基python+selenium的二次封裝方法是什么

  先把所需要的模塊、包導入好,至于我們為什么要用到這些模塊,后面就曉得了,嘻嘻嘻

  創建一個類名為 BasePage

  寫一個初始化函數加上driver形參。self.driver = driver

  這是等待元素操作的重寫,就是WebdriverWait().until(expected_conditions.visibility_of_element_located())的重寫

  我后面還加了一個doc這個參數,上面我寫了注釋就是模塊名_頁面名稱_操作名稱,這樣的話 如果報錯的話 我可以在日志、截圖、報告很清楚的看到是哪個模塊,哪個頁面,哪個操作出錯了。還有其他的參數我都帶了注釋、以及每一行代碼我都帶了注釋,我就不一一講了。

  這是查找元素的重寫

  為什么要寫一個查找的元素,請看下方

  這是點擊操作的重寫,我直接調用了查找,這個函數就是找到元素并點擊。一遍而過。

  比如send_keys()等等

  并且在每次操作之前都加了日志

  如logging.info(f"{doc}:元素:{locator}輸入內容:{text}")

  他這里如果是正確獲取的話,日志會顯示在哪個模塊哪個元素中輸入什么內容,寫的一清二楚,如果錯了,相反我也打了錯誤的日志。(doc就是哪個模塊哪個頁面哪個操作下)

  還有很多其他的操作,都是一樣的套路,如果覺得我這個重寫寫的不錯的可以按照我的套路去寫其他的操作

  獲取元素內容操作等等,我就不一一截圖了

  比如哪里出錯了,會在指定的路徑下存在報錯日志,截圖等等

  鄭州人流手術多少錢 http://mobile.chnk120.com/

基python+selenium的二次封裝方法是什么

  而且每個錯誤都會帶上doc方便自己排查錯誤。

  好了,我們來實操,用下這個框架

  首先創建一個登陸頁面的py文件LoginPage

基python+selenium的二次封裝方法是什么

  導入BasePage并創建一個類來繼承BasePage

  from PageLocators.LoginLocators.login_locators import LoginLocators as loc

  這個模塊是我存放login頁面的定位元素

  由于我們在BasePage寫了初始化函數,所以這里不需要寫了

  然后我們定義一個login的函數帶上username,password參數,這是代表輸入用戶名和密碼的形參

  再定義一個doc

  直接用我們剛才重寫的二次封裝來用

  首先我們是要找到用戶名輸入框這個元素,在這個元素中輸入我們的用戶名

  就可以直接用input_text()

  self.input_text(loc.name_text,username,doc)

  loc.name_text就是我們所定義的用戶名輸入框的定位表達式以及定位元素,我用元祖的形式括起來的。看上面的圖片

  后面username就是用戶名的形參,等你測試用例調用登陸頁面操作的時候再傳用戶名數據就好了,我每一個都帶了doc,所以doc必傳。

  所有的操作都是一樣的,理解一個就可以理解全部了。

  樓主考慮到為什么元組的形式也可以傳進去,這里我給個特寫。

  看我在locator前面加了這個符號,這個符號是解包的意思

  self.driver.find_element(By.XPATH, ‘//*[contains(@name,“username”)]’)

  實際上就是這個意思。

  然后我傳個元祖直接引用就OK了

  好了,然后我們再用pytest單元測試框架寫測試用例,然后引用LoginPage

  這紅框內就是username和password的實參啦,我這是調用登陸的測試數據。這么理解就好了。

到此,相信大家對“基python+selenium的二次封裝方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屯门区| 来凤县| 乐山市| 海林市| 蒙城县| SHOW| 牟定县| 海阳市| 客服| 穆棱市| 石棉县| 翼城县| 明光市| 华亭县| 西盟| 乌拉特后旗| 随州市| 贵州省| 奇台县| 巨鹿县| 诸暨市| 济阳县| 瑞金市| 汪清县| 肃宁县| 乐都县| 萨迦县| 仁怀市| 上栗县| 寿阳县| 神木县| 武隆县| 兰溪市| 巍山| 新乡市| 呼和浩特市| 麦盖提县| 彝良县| 盘锦市| 竹北市| 巴彦县|