Files
kt-financial-system/temp-tests/test-clear-cache-menu.js
woshiqp465 9683b940bf feat: 配置开发环境和清理项目结构
- 修改默认路由重定向到首页 (/home)
- 配置开发服务器使用5667端口
- 整理测试文件到temp-tests目录
- 优化项目结构便于开发和部署

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-15 21:35:49 +08:00

111 lines
3.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { chromium } from 'playwright';
(async () => {
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext({
// 完全清除缓存
storageState: undefined
});
const page = await context.newPage();
try {
console.log('1. 清除所有缓存,重新登录...');
// 直接访问登录页
await page.goto('http://localhost:5670/auth/login', { waitUntil: 'networkidle' });
await page.waitForTimeout(2000);
console.log('2. 执行登录...');
await page.fill('input[placeholder*="账号"]', 'admin');
await page.fill('input[placeholder*="密码"]', '111111');
await page.click('button:has-text("登录")');
// 等待登录完成并跳转
await page.waitForURL('**/workspace', { timeout: 10000 }).catch(() => {
console.log(' 等待workspace页面超时继续...');
});
await page.waitForTimeout(3000);
console.log('3. 检查侧边栏状态...');
// 展开侧边栏(如果是折叠的)
const trigger = await page.locator('.ant-layout-sider-trigger').count();
if (trigger > 0) {
const isCollapsed = await page.locator('.ant-layout-sider-collapsed').count();
if (isCollapsed > 0) {
console.log(' 展开侧边栏...');
await page.click('.ant-layout-sider-trigger');
await page.waitForTimeout(1000);
}
}
console.log('\n4. 获取菜单信息...');
// 获取所有菜单项
const allMenus = await page.locator('.ant-menu .ant-menu-title-content').allTextContents();
console.log('\n所有菜单项按显示顺序:');
console.log('========================');
allMenus.forEach((text, index) => {
console.log(`${index + 1}. ${text}`);
});
// 分类检查
console.log('\n菜单分类检查:');
console.log('-------------');
const expectedMenus = [
'记一笔',
'交易记录',
'统计分析',
'设置',
'贷款管理',
'系统工具'
];
for (const menuName of expectedMenus) {
const found = allMenus.includes(menuName);
console.log(`${found ? '✅' : '❌'} ${menuName}`);
}
// 获取更详细的菜单信息
const detailedMenus = await page.locator('.ant-menu-item, .ant-menu-submenu').evaluateAll(elements => {
return elements.map(el => {
const titleEl = el.querySelector('.ant-menu-title-content');
const isActive = el.classList.contains('ant-menu-item-selected');
const isSubmenu = el.classList.contains('ant-menu-submenu');
const path = el.querySelector('a')?.getAttribute('href') || '';
return {
text: titleEl?.textContent?.trim() || '',
isActive,
isSubmenu,
path,
classes: Array.from(el.classList).join(' ')
};
}).filter(item => item.text);
});
console.log('\n详细菜单信息:');
console.log('============');
detailedMenus.forEach(menu => {
console.log(`- ${menu.text}`);
console.log(` 类型: ${menu.isSubmenu ? '父菜单' : '菜单项'}`);
if (menu.path) console.log(` 路径: ${menu.path}`);
if (menu.isActive) console.log(` 状态: 激活`);
});
// 截图
await page.screenshot({ path: 'menu-after-clear-cache.png', fullPage: true });
console.log('\n截图保存为: menu-after-clear-cache.png');
console.log('\n✅ 完成!');
} catch (error) {
console.error('❌ 错误:', error.message);
await page.screenshot({ path: 'cache-clear-error.png' });
} finally {
await page.waitForTimeout(2000);
await browser.close();
}
})();