42 lines
1.2 KiB
JavaScript
42 lines
1.2 KiB
JavaScript
const { chromium } = require('playwright');
|
|
|
|
async function captureScreenshots() {
|
|
const browser = await chromium.launch();
|
|
const context = await browser.newContext({
|
|
viewport: { width: 1920, height: 1080 }
|
|
});
|
|
|
|
const demos = [
|
|
'vaccine_timeseries/vaccine_timeseries_1_measles/index.html',
|
|
'vaccine_timeseries/vaccine_timeseries_2_polio/index.html',
|
|
'vaccine_timeseries/vaccine_timeseries_3_covid/index.html'
|
|
];
|
|
|
|
for (const demo of demos) {
|
|
const page = await context.newPage();
|
|
const url = `http://localhost:8889/${demo}`;
|
|
const screenshotName = demo.replace(/\//g, '_').replace('index.html', 'index.png');
|
|
|
|
console.log(`📸 Capturing ${demo}...`);
|
|
|
|
try {
|
|
await page.goto(url, { waitUntil: 'networkidle', timeout: 30000 });
|
|
await page.waitForTimeout(3000); // Wait for Mapbox to render
|
|
await page.screenshot({
|
|
path: `screenshots/${screenshotName}`,
|
|
fullPage: false
|
|
});
|
|
console.log(` ✅ Saved: ${screenshotName}`);
|
|
} catch (e) {
|
|
console.log(` ❌ Failed: ${e.message}`);
|
|
}
|
|
|
|
await page.close();
|
|
}
|
|
|
|
await browser.close();
|
|
console.log('\n✅ All vaccine timeseries screenshots captured!');
|
|
}
|
|
|
|
captureScreenshots().catch(console.error);
|