如何使用頁面物件模型(POM)來構建一個乾淨的 Selenium-Java 自動化框架
當你剛開始自動化測試時,很容易將所有測試腳本寫在一個單一的巨大文件中。但隨著你的專案成長,網頁元素變更,維護變成一團糟。
這就是頁面物件模型(POM) 撐台救急。在這個快速指南中,我們將探討如何使用 Java 和 Selenium 清潔地將您的測試邏輯與頁面佈局分離。
🚀 為何使用頁面對象模式?
POM 是一種設計模式,其中您應用程式的每個網頁都有一個對應的 頁面類別。這個類別包含元素定位器和可在該頁面上執行的動作。
主要優勢:
- 可重用性:寫一次定位器,可在多個測試中重用。
- 易於維護:如果按鈕ID變更,你只需在一個地方修復,而不需要在二十個不同的測試腳本中修復。
- 可讀性:你的實際測試文件看起來像平靜的英文步驟。
💻 代码結構
讓我們看個實際例子:自動化一個簡單的登入流程。
1. 頁面對象類
這個類別定義了登入頁面。它包含了網頁元素(定位器)以及與之互動的方法。
java
package pages;
import org.openqa.selenium.By;
import org.openqa.git.WebDriver;
public class LoginPage {
private WebDriver driver;
// 1. Locate the Web Elements using private variables
private By usernameField = By.id("username");
private By passwordField = By.id("password");
private By loginButton = By.id("submit-btn");
// Constructor to initialize the driver
public LoginPage(WebDriver driver) {
this.driver = driver;
}
// 2. Action Methods
public void enterUsername(String username) {
driver.findElement(usernameField).sendKeys(username);
}
public void enterPassword(String password) {
driver.findElement(passwordField).sendKeys(password);
}
public void clickLogin() {
driver.findElement(loginButton).click();
}
}













