寫在前面
PageObject 的設計模式是 2013 年被國外大神 Martin Fowler 提出來的,其實也沒有幾年時間,但是它的思想還是很重要的,目前基本很多項目都採用了這個原則
基本思想就是代碼邏輯和業務邏輯相分離
Martin Fowler 的觀點
Martin Fowler 當年的 PageObject 的觀點
- PageObject 提供的接口需要封裝操作細節
- PageObject 中不需要對每一個元素進行封裝,我們只需要封裝我們需要的
- 當我們進行頁面跳轉時候,我們應該進入被跳轉到的頁面
- PageObject 應該要與斷言相分離
PO 的 6 大原則
官網 PO 原則
- 一個 public 方法代表一個公共的服務。就是說一個方法代替頁面上的某個操作
- PageObject 中的方法細節不可暴露在外,通過提供公共服務接口的形式提供給外部
- 一般不需要在 PageObject 中斷言
- 當有頁面跳轉的操作時候,執行這個方法時應該在方法結束返回時能夠跳轉到另一個頁面中
- 我們只需要對頁面中我們需要的重要的內容進行封裝
- 頁面中相同的組件,但是不同的操作應該要被拆成不同的方法進行封裝