使用 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元素的屏幕截图。