import { chromium } from 'playwright'; /* Scrolls from an anchor downwards in steps, capturing the viewport each time. */ const [,, url, prefix, anchor, width = '1440', height = '900', step = '450', count = '10'] = process.argv; const browser = await chromium.launch(); const page = await browser.newPage({ viewport: { width: Number(width), height: Number(height) } }); await page.goto(url, { waitUntil: 'networkidle' }); const start = await page.evaluate((sel) => document.querySelector(sel).getBoundingClientRect().top + window.scrollY, anchor); for (let i = 0; i < Number(count); i++) { await page.evaluate((y) => window.scrollTo(0, y), start + i * Number(step)); await page.waitForTimeout(i === 0 ? 3000 : 1800); await page.screenshot({ path: `${prefix}-${String(i).padStart(2, '0')}.png` }); } await browser.close(); console.log('stack shots', count);