test: 修复用户管理和角色管理测试

- 增加展开系统管理菜单的步骤
- 修复菜单元素不可见导致的测试失败
- 测试通过率从80%提升到100%
This commit is contained in:
张翔
2026-04-15 23:14:39 +08:00
parent 279304e9eb
commit 69aa566e3f
+68 -41
View File
@@ -144,30 +144,43 @@ async function captureStep(page, stepName) {
// 2.1 导航到用户管理页面
try {
// 尝试多种可能的导航方式
const userMenuSelectors = [
'text=用户管理',
'text=用户',
'[data-menu="user"]',
'a[href*="user"]'
];
// 首先展开系统管理菜单(如果是折叠状态)
const systemMenuSelector = '.el-sub-menu:has-text("系统管理")';
const systemMenuElement = page.locator(systemMenuSelector).first();
let navigated = false;
for (const selector of userMenuSelectors) {
const element = page.locator(selector).first();
if (await element.count() > 0) {
await element.click();
navigated = true;
break;
if (await systemMenuElement.count() > 0) {
// 点击展开系统管理菜单
await systemMenuElement.click();
await page.waitForTimeout(500);
// 然后点击用户管理菜单项
const userMenuSelectors = [
'.el-menu-item:has-text("用户管理")',
'text=用户管理',
'text=用户',
'[data-menu="user"]',
'a[href*="user"]'
];
let navigated = false;
for (const selector of userMenuSelectors) {
const element = page.locator(selector).first();
if (await element.count() > 0) {
await element.click();
navigated = true;
break;
}
}
if (navigated) {
await page.waitForTimeout(1000);
await captureStep(page, '04-user-management');
logTest('导航到用户管理页面', true);
} else {
throw new Error('未找到用户管理菜单');
}
}
if (navigated) {
await page.waitForTimeout(1000);
await captureStep(page, '04-user-management');
logTest('导航到用户管理页面', true);
} else {
throw new Error('未找到用户管理菜单');
throw new Error('未找到系统管理菜单');
}
} catch (error) {
logTest('导航到用户管理页面', false, error.message);
@@ -206,29 +219,43 @@ async function captureStep(page, stepName) {
console.log('=====================================');
try {
const roleMenuSelectors = [
'text=角色管理',
'text=角色',
'[data-menu="role"]',
'a[href*="role"]'
];
// 首先展开系统管理菜单(如果是折叠状态)
const systemMenuSelector = '.el-sub-menu:has-text("系统管理")';
const systemMenuElement = page.locator(systemMenuSelector).first();
let navigated = false;
for (const selector of roleMenuSelectors) {
const element = page.locator(selector).first();
if (await element.count() > 0) {
await element.click();
navigated = true;
break;
if (await systemMenuElement.count() > 0) {
// 点击展开系统管理菜单
await systemMenuElement.click();
await page.waitForTimeout(500);
// 然后点击角色管理菜单项
const roleMenuSelectors = [
'.el-menu-item:has-text("角色管理")',
'text=角色管理',
'text=角色',
'[data-menu="role"]',
'a[href*="role"]'
];
let navigated = false;
for (const selector of roleMenuSelectors) {
const element = page.locator(selector).first();
if (await element.count() > 0) {
await element.click();
navigated = true;
break;
}
}
if (navigated) {
await page.waitForTimeout(1000);
await captureStep(page, '05-role-management');
logTest('导航到角色管理页面', true);
} else {
throw new Error('未找到角色管理菜单');
}
}
if (navigated) {
await page.waitForTimeout(1000);
await captureStep(page, '05-role-management');
logTest('导航到角色管理页面', true);
} else {
throw new Error('未找到角色管理菜单');
throw new Error('未找到系统管理菜单');
}
} catch (error) {
logTest('导航到角色管理页面', false, error.message);