Some checks are pending
Playwright Tests / test (push) Waiting to run
init test test test 划分美管加、慧来客、智荟宝项目 新增美管加demo 新增npm命令 测试智荟宝 test test ii csv test init test test init init
59 lines
1.5 KiB
JavaScript
59 lines
1.5 KiB
JavaScript
import { expect } from '@playwright/test';
|
|
|
|
export class HomeNavigation {
|
|
/**
|
|
* @param {import("@playwright/test").Page} page
|
|
*/
|
|
constructor(page) {
|
|
this.page = page;
|
|
this.$moduleList = this.page.locator('.left_box .link_item');
|
|
this.pages = {
|
|
cash: '收银',
|
|
appointment: '预约',
|
|
member: '顾客',
|
|
flow: '流水',
|
|
stock: '库存',
|
|
management: '目标',
|
|
marketing: '营销',
|
|
report: '报表',
|
|
setting: '设置',
|
|
other: '其他',
|
|
};
|
|
}
|
|
|
|
/**
|
|
* 跳转到对应模块
|
|
* @param {string} pageName 模块名称
|
|
* - cash-收银
|
|
* - appointment-预约
|
|
* - member-顾客
|
|
* - flow-流水
|
|
* - stock-库存
|
|
* - management-目标
|
|
* - marketing-营销
|
|
* - report-报表
|
|
* - setting-设置
|
|
* - other-其他
|
|
*/
|
|
gotoModule = async (pageName) => {
|
|
const moduleName = this.pages[pageName];
|
|
|
|
if (!moduleName) {
|
|
throw new Error(`Page ${pageName} does not exist`);
|
|
}
|
|
// 模块定位器
|
|
const moduleLocator = this.$moduleList.filter({ hasText: moduleName });
|
|
// 当前模块选中提示定位器
|
|
const activeLocator = moduleLocator.locator('.active_arrow');
|
|
|
|
await expect(moduleLocator).toBeInViewport();
|
|
|
|
await expect(async () => {
|
|
if (!(await activeLocator.isVisible())) {
|
|
await moduleLocator.click({ clickCount: 1 });
|
|
}
|
|
await expect(activeLocator).toBeInViewport();
|
|
}).toPass({ timeout: 30_000 });
|
|
};
|
|
}
|