diff --git a/novalon-manage-web/user-journey-test.js b/novalon-manage-web/user-journey-test.js index 9243b64..8627868 100644 --- a/novalon-manage-web/user-journey-test.js +++ b/novalon-manage-web/user-journey-test.js @@ -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);