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.
53 lines
1.8 KiB
JavaScript
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();
|
|
})();
|