test: 修复用户管理和角色管理测试
- 增加展开系统管理菜单的步骤 - 修复菜单元素不可见导致的测试失败 - 测试通过率从80%提升到100%
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user