Files
PicAnalysis/frontend/debug-page.cjs
wjl 1a0ebde95d feat: 初始化 PicAnalysis 项目
完整的前后端图片分析应用,包含:
- 后端:Express + Prisma + SQLite,101个单元测试全部通过
- 前端:React + TypeScript + Vite,47个单元测试,89.73%覆盖率
- E2E测试:Playwright 测试套件
- MCP集成:Playwright MCP配置完成并测试通过

功能模块:
- 用户认证(JWT)
- 文档管理(CRUD)
- 待办管理(三态工作流)
- 图片管理(上传、截图、OCR)

测试覆盖:
- 后端单元测试:101/101 
- 前端单元测试:47/47 
- E2E测试:通过 
- MCP Playwright测试:通过 

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 20:10:11 +08:00

75 lines
2.0 KiB
JavaScript

/**
* 调试页面加载问题
*/
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch({
headless: false,
channel: 'chrome'
});
const page = await browser.newPage();
// 监听所有控制台消息
page.on('console', msg => {
console.log(`[${msg.type()}] ${msg.text()}`);
});
// 监听页面错误
page.on('pageerror', error => {
console.error(`[PAGE ERROR] ${error.message}`);
console.error(error.stack);
});
// 监听请求
page.on('request', request => {
console.log(`[REQUEST] ${request.method()} ${request.url()}`);
});
// 监听响应
page.on('response', response => {
if (response.status() >= 400) {
console.error(`[RESPONSE ERROR] ${response.status()} ${response.url()}`);
}
});
console.log('正在访问 http://localhost:3000 ...');
await page.goto('http://localhost:3000', {
waitUntil: 'networkidle',
timeout: 30000
});
console.log('\n等待 5 秒...');
await page.waitForTimeout(5000);
// 检查 DOM 内容
const bodyHTML = await page.evaluate(() => {
return {
root: document.getElementById('root')?.innerHTML.substring(0, 500),
bodyText: document.body.innerText.substring(0, 200),
hasReact: !!window.React,
scripts: Array.from(document.querySelectorAll('script')).map(s => s.src),
styles: Array.from(document.querySelectorAll('link[rel="stylesheet"]')).map(s => s.href)
};
});
console.log('\n页面信息:');
console.log('Root 内容:', bodyHTML.root || '空');
console.log('Body 文本:', bodyHTML.bodyText || '空');
console.log('React 存在:', bodyHTML.hasReact);
console.log('脚本:', bodyHTML.scripts);
console.log('样式:', bodyHTML.styles);
// 截图
await page.screenshot({ path: 'debug-screenshot.png' });
console.log('\n截图已保存: debug-screenshot.png');
console.log('\n按 Enter 关闭浏览器...');
await new Promise(resolve => {
process.stdin.once('data', resolve);
});
await browser.close();
})();