From c08b274fbd1734b0441701930e25bdd5147e6ff6 Mon Sep 17 00:00:00 2001 From: dengqichen Date: Fri, 7 Mar 2025 14:21:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=88=86=E6=89=B9=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E7=82=B9=E5=87=BB=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.dev | 2 +- src/pages/LongiMainPage.js | 51 ++++---------------------------------- tests/e2e/menu.spec.js | 4 +-- 3 files changed, 8 insertions(+), 49 deletions(-) diff --git a/.env.dev b/.env.dev index ab452c5..91badce 100644 --- a/.env.dev +++ b/.env.dev @@ -10,7 +10,7 @@ TEST_MAX_RETRY_DELAY=5000 # 超时配置 MENU_TIME_OUT=30000 -EXPECT_TIMEOUT=30000 +EXPECT_TIMEOUT=3600000 # 浏览器配置 BROWSER_HEADLESS=false diff --git a/src/pages/LongiMainPage.js b/src/pages/LongiMainPage.js index fa4f185..f6afb1c 100644 --- a/src/pages/LongiMainPage.js +++ b/src/pages/LongiMainPage.js @@ -102,58 +102,18 @@ class LongiMainPage extends BasePage { } /** - * 检查菜单数据文件是否存在并加载数据 + * 获取菜单项数据 */ - async checkAndLoadMenuItems() { + async getMenuItems() { try { - // 加载JSON文件 - const menuItems = FileUtils.loadFromJsonFile(process.env.MENU_DATA_FILE_PATH); - - // 检查是否成功加载数据 - if (menuItems && Array.isArray(menuItems) && menuItems.length > 0) { - console.log(`从文件 ${process.env.BASE_URL} 成功加载了 ${menuItems.length} 个菜单项`); - return menuItems; - } else { - await this.expandSideMenu(); - return await this.findAndSaveMenuItems(); - } + await this.expandSideMenu(); + return await this.findMenuItems(); } catch (error) { - // 文件操作错误需要被捕获并处理 - console.error(`检查并加载菜单项时出错: ${error}`); + console.error(`获取菜单项时出错: ${error}`); return null; } } - /** - * 查找菜单项并保存到文件 - */ - async findAndSaveMenuItems() { - // 查找菜单项 - const menuItems = await this.findMenuItems(); - - // 如果没有找到菜单项,则返回空数组 - if (!menuItems || menuItems.length === 0) { - console.warn('未找到任何菜单项,无法保存到文件'); - return []; - } - - try { - // 过滤掉不能序列化的element属性 - const menuItemsForSave = menuItems.map(({element, ...rest}) => rest); - - // 保存到文件 - FileUtils.saveToJsonFile(menuItemsForSave, process.env.MENU_DATA_FILE_PATH); - - console.log(`已找到并保存 ${menuItems.length} 个菜单项到文件: ${process.env.MENU_DATA_FILE_PATH}`); - - return menuItems; - } catch (error) { - // 文件操作错误需要被捕获 - console.error('保存菜单项到文件时出错:', error); - return menuItems; // 即使保存失败也返回找到的菜单项 - } - } - /** * 查找所有菜单项 * @returns {Promise} 菜单项数组 @@ -194,7 +154,6 @@ class LongiMainPage extends BasePage { // 检查是否有三级菜单指示器 const hasThirdLevelIndicator = await item.evaluate(el => { - // 检查是否有特定的三级菜单指示器 return el.classList.contains('is-opened') || el.querySelector('.third-level-menu') !== null || el.querySelector('.el-menu--inline') !== null; diff --git a/tests/e2e/menu.spec.js b/tests/e2e/menu.spec.js index 02b1393..6e2a923 100644 --- a/tests/e2e/menu.spec.js +++ b/tests/e2e/menu.spec.js @@ -4,14 +4,14 @@ require('../../config/env'); const { test } = require('@playwright/test'); const TestController = require('../../src/controllers/LongiTestController'); -test.describe('菜单可访问性测试', () => { +test.describe('测试所有隆基需求计划是否可用', () => { let controller; test.beforeAll(async () => { controller = new TestController(); }); - test('应该能成功收集所有菜单数据', async () => { + test('获取最新菜单数据', async () => { const menuData = await controller.collectMenuData(); test.expect(menuData.length).toBeGreaterThan(0); console.log(`✓ 成功收集 ${menuData.length} 个菜单项`);