Skip to content

Instantly share code, notes, and snippets.

@tamanugi
Last active December 24, 2018 02:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tamanugi/b81dcc3c235a62a1f7b68924f9aecede to your computer and use it in GitHub Desktop.
Save tamanugi/b81dcc3c235a62a1f7b68924f9aecede to your computer and use it in GitHub Desktop.
Puppeteerを使って指定したDOMのみのスクリーンショットを取得する ref: https://qiita.com/tamanugi/items/8cc1266265457f13b9ea
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({headless: true});
const page = await browser.newPage();
const targetElementSelector = '#tw-container'
await page.goto('https://google.co.jp')
await page.type('pupperteer 翻訳')
await page.click('#tsf > div.tsf-p > div.jsb > center > input[type="submit"]:nth-child(1)')
await page.waitFor(targetElementSelector)
await page.screenshot({path: 'page-ss.png'})
const clip = await page.evaluate(s => {
const el = document.querySelector(s)
// エレメントの高さと位置を取得
const { width, height, top: y, left: x } = el.getBoundingClientRect()
return { width, height, x, y }
}, targetElementSelector)
// スクリーンショットに位置と大きさを指定してclipする
await page.screenshot({ clip, path: 'tw-container-ss.png' })
browser.close();
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment