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.
80 lines
2.7 KiB
JavaScript
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完成');
|
|
})();
|