使用 Node.js 和 Selenium 对整个页面进行截图

npm init
npm i -S selenium-webdriver

请按照以下链接安装Selenium WebDriver的驱动程序:https://github.com/SeleniumHQ/selenium/tree/master/javascript/node/selenium-webdriver#installation。

这次是Chrome 74的版本。

将PATH添加入环境变量

export PATH=${DOWNLOADED_CHROME_DRIVER}:$PATH
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元素的屏幕截图。