const { chromium } = require('playwright'); (async () => { const browser = await chromium.launch({ headless: true }); const page = await browser.newPage(); // 1. 登录 console.log('1. 登录...'); await page.goto('http://127.0.0.1/admin/'); await page.waitForTimeout(1000); // 检查是否在登录页 const url = page.url(); console.log('当前URL:', url); if (url.includes('login')) { await page.fill('input[type="text"], input[placeholder*="用户名"]', 'admin'); await page.fill('input[type="password"]', 'admin123'); await page.click('button:has-text("登录")'); await page.waitForTimeout(2000); console.log('登录后URL:', page.url()); } // 2. 导航到产量报表 console.log('\n2. 导航到产量报表...'); await page.goto('http://127.0.0.1/admin/production'); await page.waitForTimeout(3000); console.log('产量报表URL:', page.url()); // 3. 截图 await page.screenshot({ path: 'test-screenshots/production-page.png', fullPage: true }); console.log('截图已保存'); // 4. 检查日期选择器的值 const dateInputs = await page.$$eval('.el-date-editor input', els => els.map(e => e.value)); console.log('\n3. 日期选择器值:', dateInputs); // 5. 检查表格内容 const tableContent = await page.evaluate(() => { const rows = document.querySelectorAll('.el-table__body tr'); const result = []; for (let i = 0; i < Math.min(rows.length, 5); i++) { const cells = rows[i].querySelectorAll('td .cell'); const row = []; cells.forEach(c => row.push(c.textContent.trim())); result.push(row); } return result; }); console.log('\n4. 表格内容(前5行):'); tableContent.forEach((row, i) => console.log(` 行${i + 1}:`, JSON.stringify(row))); // 6. 检查表格列头 const headers = await page.$$eval('.el-table__header th .cell', els => els.map(e => e.textContent.trim())); console.log('\n5. 表格列头:', headers); // 7. 检查汇总卡片 const summary = await page.evaluate(() => { const cards = document.querySelectorAll('.summary-card, .el-card'); const result = []; cards.forEach(c => result.push(c.textContent.trim().substring(0, 100))); return result; }); console.log('\n6. 汇总卡片:', summary.slice(0, 5)); // 8. 检查页面是否有错误 const errors = await page.$$eval('.el-message--error, .el-notification', els => els.map(e => e.textContent.trim())); if (errors.length > 0) { console.log('\n错误信息:', errors); } // 9. 检查console错误 page.on('console', msg => { if (msg.type() === 'error') console.log('CONSOLE ERROR:', msg.text()); }); await browser.close(); console.log('\n完成'); })();