- 添加项目配置文件和环境变量设置 - 创建测试用例目录结构和命名规范 - 实现基础测试 fixture 和页面对象模型 - 添加示例测试用例和数据生成器 - 配置 playwright 和 gitignore 文件
34 lines
1.0 KiB
TypeScript
34 lines
1.0 KiB
TypeScript
import { Page } from '@playwright/test';
|
|
import { waitSpecifyApiLoad } from '@/utils/utils.js';
|
|
|
|
export class GoalPage {
|
|
readonly page: Page;
|
|
subPages: { name: string; url?: string[] }[];
|
|
|
|
constructor(page: Page) {
|
|
this.page = page;
|
|
this.subPages = [{ name: '员工目标' }, { name: '精细化管理', url: ['/user_kpi_detail'] }];
|
|
}
|
|
|
|
/**
|
|
* 跳转到子页面
|
|
* @param subPageName - 员工目标 | 精细化管理
|
|
*/
|
|
async gotoSubPage(subPageName: string) {
|
|
if (!this.subPages.some(({ name }) => name === subPageName)) {
|
|
throw new Error(`${subPageName} is not a valid sub page name`);
|
|
}
|
|
|
|
const $topTab = this.page.locator('.top_tab .tab_item').filter({ hasText: subPageName });
|
|
|
|
if ((await $topTab.getAttribute('class', { timeout: 500 }))?.includes('active')) {
|
|
return;
|
|
}
|
|
|
|
await Promise.all([
|
|
$topTab.click(),
|
|
waitSpecifyApiLoad(this.page, this.subPages.find(({ name }) => name === subPageName)?.url),
|
|
]);
|
|
}
|
|
}
|