頁面物件模型
簡介
大型測試套件可以結構化以優化編寫和維護的便利性。頁面物件模型是結構化測試套件的一種方法。
一個頁面物件代表您的網頁應用程式的一部分。一個電子商務網頁應用程式可能有一個首頁、一個列表頁和一個結帳頁。每個頁面都可以由頁面物件模型表示。
Page 物件簡化撰寫,透過建立適合您的應用程式的高階 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");