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-v2.js

53 lines
1.8 KiB
JavaScript

const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch({ headless: true });
const context = await browser.newContext({ ignoreHTTPSErrors: true });
const page = await context.newPage();
// 登录
console.log('1. 登录...');
await page.goto('http://127.0.0.1/admin/login');
await page.waitForTimeout(1000);
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());
// 导航到产量报表
console.log('\n2. 导航到产量报表...');
await page.goto('http://127.0.0.1/admin/production');
await page.waitForTimeout(3000);
// 截图
await page.screenshot({ path: 'test-screenshots/production-page-v2.png', fullPage: true });
// 检查日期
const dateInputs = await page.$$eval('.el-date-editor input', els => els.map(e => e.value));
console.log('日期选择器:', dateInputs);
// 检查今天日期
const today = new Date();
console.log('JS Date today:', today.toISOString(), today.toLocaleDateString('zh-CN'));
// 检查表格内容
const rows = await page.$$eval('.el-table__body tr', trs =>
trs.slice(0, 3).map(tr => {
const cells = tr.querySelectorAll('td .cell');
return Array.from(cells).map(c => c.textContent.trim());
})
);
console.log('\n表格前3行:');
rows.forEach((row, i) => console.log(`${i+1}:`, JSON.stringify(row)));
// 检查汇总
const summaryText = await page.evaluate(() => {
const el = document.querySelector('.summary-card, .el-card');
return el ? el.innerText.substring(0, 200) : '无汇总卡片';
});
console.log('\n汇总:', summaryText);
await browser.close();
})();