nodejs selenium でページ全体をスクショする


npm init
npm i -S selenium-webdriver

https://github.com/SeleniumHQ/selenium/tree/master/javascript/node/selenium-webdriver#installation
からdriverをインストール

今回はchrome 74

PATHを通す

export PATH=${DOWNLOADED_CHROME_DRIVER}:$PATH
index.js
const { Builder } = require('selenium-webdriver');
const fs = require('fs');

(async () => {

  const driver = await new Builder()
    .forBrowser('chrome')
    .setChromeOptions([
      '--headless',
      '--disable-gpu',
    ])
    .build();

  try {
    await driver.get('http://www.google.com');
    const base64 = await driver.takeScreenshot();
    const buffer = Buffer.from(base64, 'base64');
    fs.writeFileSync('screenshot.jpg', buffer);
  } catch (e) {
    console.log(e)
  } finally {
    await driver.quit();
  }
})();
node index.js

nodeでdom要素のみのスクショはまだできないっぽいです