Files
telegram-management-system/check-menu-visibility.js
你的用户名 237c7802e5
Some checks failed
Deploy / deploy (push) Has been cancelled
Initial commit: Telegram Management System
Full-stack web application for Telegram management
- Frontend: Vue 3 + Vben Admin
- Backend: NestJS
- Features: User management, group broadcast, statistics

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 15:37:50 +08:00

102 lines
3.2 KiB
JavaScript
Raw Permalink 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.

const { chromium } = require('playwright');
(async () => {
let browser;
try {
console.log('启动浏览器检查菜单显示...');
browser = await chromium.launch({
headless: false,
slowMo: 300
});
const context = await browser.newContext({
viewport: { width: 1920, height: 1080 }
});
const page = await context.newPage();
// 登录
console.log('\n执行登录...');
await page.goto('http://localhost:5174/', { waitUntil: 'networkidle' });
await page.fill('[name="username"]', 'admin');
await page.fill('[name="password"]', '111111');
await page.click('button:has-text("登录")');
await page.waitForTimeout(2000);
// 访问首页
if (page.url().includes('login')) {
await page.goto('http://localhost:5174/dashboard/home', { waitUntil: 'networkidle' });
}
await page.waitForTimeout(1000);
console.log('\n检查菜单显示情况...');
// 获取所有菜单项
const allMenuItems = await page.locator('.ant-menu-item, .ant-menu-submenu').all();
console.log(`\n找到 ${allMenuItems.length} 个菜单元素`);
// 获取所有一级菜单(父菜单)
const parentMenus = await page.locator('.ant-menu-submenu-title').all();
console.log(`\n一级菜单(${parentMenus.length}个):`);
for (let i = 0; i < parentMenus.length; i++) {
const text = await parentMenus[i].textContent();
console.log(`${i + 1}. ${text.trim()}`);
}
// 展开所有一级菜单并获取子菜单
console.log('\n\n展开菜单查看子菜单项...');
for (let i = 0; i < parentMenus.length; i++) {
const parentText = await parentMenus[i].textContent();
console.log(`\n${parentText.trim()}:`);
// 点击展开
await parentMenus[i].click();
await page.waitForTimeout(300);
// 获取当前展开的子菜单
const subMenuItems = await page.locator('.ant-menu-submenu-open .ant-menu-item').all();
if (subMenuItems.length > 0) {
for (let j = 0; j < subMenuItems.length; j++) {
const subText = await subMenuItems[j].textContent();
console.log(` - ${subText.trim()}`);
}
} else {
console.log(' (无子菜单)');
}
// 收起菜单
await parentMenus[i].click();
await page.waitForTimeout(300);
}
// 获取独立的菜单项(非子菜单)
const standaloneItems = await page.locator('.ant-menu > .ant-menu-item').all();
if (standaloneItems.length > 0) {
console.log('\n\n独立菜单项:');
for (let i = 0; i < standaloneItems.length; i++) {
const text = await standaloneItems[i].textContent();
console.log(`- ${text.trim()}`);
}
}
// 截图当前状态
await page.screenshot({ path: 'test-screenshots/menu-visibility-check.png', fullPage: true });
console.log('\n\n菜单检查完成');
console.log('保持浏览器打开,您可以手动测试...');
// 保持浏览器打开
await new Promise(() => {});
} catch (error) {
console.error('出错了:', error);
if (browser) {
await browser.close();
}
}
})();