You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
haoliang-net/test-production-page.js

80 lines
2.7 KiB
JavaScript

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完成');
})();