53 lines
1.8 KiB
JavaScript
53 lines
1.8 KiB
JavaScript
const { chromium } = require('playwright');
|
|
const path = 'C:\\Users\\然然小可爱\\Desktop\\数学乐园\\index.html';
|
|
|
|
(async () => {
|
|
const browser = await chromium.launch({ headless: true });
|
|
const page = await browser.newPage({ viewport: { width: 800, height: 900 } });
|
|
page.on('pageerror', e => console.log(' ERROR:', e.message));
|
|
|
|
await page.goto('file:///' + path.replace(/\\/g, '/'));
|
|
await page.waitForTimeout(1000);
|
|
|
|
// Unlock all
|
|
await page.evaluate(() => { S.stars = [3,3,3,3]; sv(); renderMap(); });
|
|
await page.waitForTimeout(300);
|
|
|
|
// Navigate via goChap
|
|
await page.evaluate(() => goChap(3));
|
|
await page.waitForTimeout(500);
|
|
|
|
const gl = await page.$eval('#cGl', e => e.textContent).catch(() => 'ERR');
|
|
console.log('当前段:', gl);
|
|
|
|
// Walk through KPs
|
|
for (let step = 0; step < 7; step++) {
|
|
const act = await page.$('.act.show');
|
|
if (act) await act.click(); await page.waitForTimeout(500);
|
|
const label = await page.$eval('#cGl', e => e.textContent).catch(() => '?');
|
|
|
|
const svgAnims = await page.evaluate(() => {
|
|
const svgs = document.querySelectorAll('#cCo svg');
|
|
let n = 0;
|
|
svgs.forEach(s => { if (s.innerHTML.includes('animate')) n++; });
|
|
return n;
|
|
});
|
|
|
|
console.log((step+1) + '. ' + label + ' SVG动画:' + svgAnims + '个');
|
|
}
|
|
|
|
// Final content check
|
|
const body = await page.evaluate(() => document.body.innerHTML);
|
|
const checks = [
|
|
['展开图滑入', body.includes('展开图演示')],
|
|
['角度弧线', body.includes('∠=')],
|
|
['钟面8:30', body.includes('8:30')],
|
|
['射线延伸', body.includes('x2')],
|
|
['中点滑动', body.includes('cx"')],
|
|
];
|
|
console.log('\n动画内容:');
|
|
checks.forEach(c => console.log(' ' + (c[1] ? '✅' : '❌') + ' ' + c[0]));
|
|
|
|
await browser.close();
|
|
})().catch(e => console.log('失败:', e.message));
|