Перейти к основному содержимому

Модели объектов страниц

Введение

Большие наборы тестов могут быть структурированы для оптимизации простоты написания и поддержки. Модели объектов страниц — это один из подходов к структурированию вашего набора тестов.

Объект страницы представляет часть вашего веб-приложения. Веб-приложение для электронной коммерции может иметь главную страницу, страницу со списками и страницу оформления заказа. Каждая из них может быть представлена моделями объектов страниц.

Объекты страниц упрощают написание тестов, создавая более высокоуровневый 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;

// в тесте
var page = new SearchPage(await browser.NewPageAsync());
await page.GotoAsync();
await page.SearchAsync("search query");