import { expect, Page } from '@playwright/test'; export class CustomerDetailsPage { page: Page; subPages: { name: string; url?: string[] }[]; /** * 顾客详情页面 */ constructor(page: Page) { this.page = page; this.subPages = [{ name: '基本资料' }, { name: '流水' }, { name: '动态' }, { name: '日志' }]; } /** * * @param subPageName 子页面名称 * - 基本资料 * - 流水 * - 动态 * - 日志 */ gotoSubPage = async (subPageName: string) => { if (!this.subPages.findIndex(e => e.name === subPageName)) { throw new Error(`${subPageName} is not in the subPages list`); } const $subPage = this.page.getByRole('tab', { name: subPageName }); await $subPage.click(); await expect($subPage).toHaveClass(/active/); await this.page.waitForLoadState(); }; }