selenium之POM模式的實現


POM是Page Object Model的縮寫,中文意思是頁面對象模型,POM是通過分離測試對象和測試腳本來實現的。

POM主要有以下優點:

1. 把web ui對象從測試腳本分離,代碼和測試腳本分離。

2. 每一個頁面對應一個頁面類,頁面的元素寫到這個頁面類中。

3. 頁面類主要包括該頁面的元素定位,和這些元素相關的操作代碼封裝的方法。

4. 代碼復用,從而減少測試腳本代碼量。

5. 層次清晰,同時支持多個編寫自動化腳本開發。

6. 頁面類和邏輯方法都起一個有意義的名稱,方便他人快速編寫腳本和維護腳本。

通過一個例子來看下POM的實現:

下面以登錄QQ郵箱為例的線性腳本:

這個用例只操作5個元素,就暴露出來了一些代碼冗余和可讀性的問題。如果有更多功能,那么用例代碼更加厚重,可讀性也是大大降低,我們需要對此代碼進行優化,通過POM來實現。
 首先,我們要分離測試對象和測試腳本,我們分別創建四個腳本文件,basePage.py用於初始化頁面屬性,打開瀏覽器,定義查找元素的方式,homePage.py用於定義被測網址首頁未登錄前的操作,定義登錄按鈕和表單的定位方式,loginPage.py 用於定義頁面元素對象,每一個元素都封裝成函數,login_test.py 測試用例腳本。元素的操作方法定義在Page頁面,用例腳本通過調用Page中的函數來實現郵箱的登錄。把上述4個腳本放在同級目錄的不同的文件夾下,如下:
 
basePage.py的代碼如下:
 
homePage.py的代碼如下:

loginPage.py的代碼如下:

login_test.py測試用例代碼如下:

通過使用POM進行重新構造代碼結構后,測試用例代碼的可讀性提高很多,元素寫成函數的方式,不需要每次都寫find_element,直接在腳本中調用函數就可以使用。這種方式方便對腳本進行后期的維護管理,當元素屬性發生變化時,我們只需要對一個頁面中的函數定義進行更改即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM