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/goalPage.ts
LingandRX 6517e4192c feat: 初始化慧来客自动化测试项目
- 添加项目配置文件和环境变量设置
- 创建测试用例目录结构和命名规范
- 实现基础测试 fixture 和页面对象模型
- 添加示例测试用例和数据生成器
- 配置 playwright 和 gitignore 文件
2024-12-22 19:18:27 +08:00

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),
]);
}
}