Puppeteer:
Getting Started
이현섭 / GDG Korea WebTech Organizer
What is Puppeteer?
• Chrome / Chromium을 컨트롤 할 수 있는 API Library
• Chrome으로 할 수 있는 일을 자동화 할 수 있음
• e2e Testing
• SPA Prerendering
• Web Site Crawling
• Generating PDF
• Maintained by Google
Possibly replace..
• PhantomJS
• prerender.io
• Selenium driver
• Cheerio
Screenshot Example
Launch Chromium in headless mode
Open new tab
Set viewport size
Go to google.com
Capture screenshot
Close Chromium
PDF Example
Go to blog post page
Generate PDF
e2e Testing Example
: Live Coding
Interacting with UI
Reliable Waiting
Evaluation
Browser Runtime
Passing values
=
With Jest
Browser Context
Open new tab in context
Different Pages, Same Context
Live Demo
https://github.com/smooth-code/jest-puppeteer
Crawling Example
Get all post titles by classname
Go to next page
Prerendering: react-snap
• SPA를 위한 Prerenderer
• SEO / Meta Tag Pre-render
• React는 물론 Vue, Preact에도 사용가능
• 내부적으로 Puppeteer 사용
Server-rendered markup
Attaching Event Handlers
https://web.dev/prerender-with-react-snap/
https://github.com/hyunseob/puppeteer-getting-started
감사합니다.
mail@hyunseob.me
github.com/hyunseob
twitter.com/hyunseob_

Puppeteer: Getting Started