From 69aa566e3f7fa176818040d862a2b35e56135e68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=BF=94?= Date: Wed, 15 Apr 2026 23:14:39 +0800 Subject: [PATCH] =?UTF-8?q?test:=20=E4=BF=AE=E5=A4=8D=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=92=8C=E8=A7=92=E8=89=B2=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 增加展开系统管理菜单的步骤 - 修复菜单元素不可见导致的测试失败 - 测试通过率从80%提升到100% --- novalon-manage-web/user-journey-test.js | 109 +++++++++++++++--------- 1 file changed, 68 insertions(+), 41 deletions(-) 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);