跳到主要內容

頁面物件模型

簡介

大型測試套件可以組織化,以優化撰寫和維護的便利性。頁面物件模型是組織測試套件的一種方法。

頁面物件代表您的 Web 應用程式的一部分。電子商務 Web 應用程式可能有一個首頁、一個商品列表頁面和一個結帳頁面。它們中的每一個都可以用頁面物件模型來表示。

頁面物件通過創建更適合您的應用程式的更高層級 API 來簡化撰寫,並通過在一個地方捕獲元素選擇器並創建可重複使用的程式碼以避免重複來簡化維護

實作

頁面物件模型包裝在 Playwright 的 Page 之上。

using System.Threading.Tasks;
using Microsoft.Playwright;

namespace BigEcommerceApp.Tests.Models;

public class SearchPage
{
private readonly IPage _page;
private readonly ILocator _searchTermInput;

public SearchPage(IPage page)
{
_page = page;
_searchTermInput = page.Locator("[aria-label='Enter your search term']");
}

public async Task GotoAsync()
{
await _page.GotoAsync("https://bing.com");
}

public async Task SearchAsync(string text)
{
await _searchTermInput.FillAsync(text);
await _searchTermInput.PressAsync("Enter");
}
}

頁面物件然後可以在測試中使用。

using BigEcommerceApp.Tests.Models;

// in the test
var page = new SearchPage(await browser.NewPageAsync());
await page.GotoAsync();
await page.SearchAsync("search query");