This repository has been archived on 2025-04-22. You can view files and clone it, but cannot push or open issues or pull requests.
hlk_autotest/tests/pages/customer/customerDetailsPage.ts

47 lines
1.4 KiB
TypeScript

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) => {
// 标准化输入字符串,去除前后空格并统一为小写
const normalizedSubPageName = subPageName.trim().toLowerCase();
// 检查子页面是否存在
if (!this.subPages.some(e => e.name.trim().toLowerCase() === normalizedSubPageName)) {
throw new Error(`${subPageName} is not in the subPages list`);
}
try {
// 获取子页面元素并点击
const $subPage = this.page.getByRole('tab', { name: subPageName });
await $subPage.click();
await expect($subPage).toHaveClass(/active/);
} catch (error) {
// 捕获并抛出更明确的错误信息
throw new Error(`Failed to navigate to ${subPageName}: ${error.message}`);
}
};
}