목적

Node.js에서 브라우저를 열고 특정 요소가 나타난 후 스크린샷을 저장합니다. 과거 Node 8·simple-headless-chrome 예제는 제거했습니다.

준비

프로젝트가 지원하는 Node 버전에서 설치하고 lock 파일로 버전을 고정합니다.

npm install puppeteer

예제 · capture.mjs

import puppeteer from 'puppeteer';

const browser = await puppeteer.launch();
try {
  const page = await browser.newPage();
  await page.setViewport({ width: 1280, height: 800 });
  await page.goto('<https://example.com>', {
    waitUntil: 'domcontentloaded',
    timeout: 30000
  });
  await page.waitForSelector('h1', { timeout: 10000 });
  await page.screenshot({ path: 'page.png', fullPage: true });
} finally {
  await browser.close();
}
node capture.mjs

안정성

고정 sleep보다 필요한 요소나 앱 상태를 기다립니다. 인증은 테스트 전용 계정으로 분리하고 세션 파일을 저장소에 올리지 않습니다. 컨테이너에서 실행할 때 OS 의존성과 브라우저 sandbox 구성을 확인합니다.

AI 브라우저 에이전트와의 차이

정해진 경로의 회귀 테스트는 재현 가능한 브라우저 스크립트로 유지하고, AI는 탐색·테스트 초안·실패 분석에 활용하는 방식부터 검토합니다.

공식 자료

Puppeteer screenshots

Powered by Fruition