page2image is a npm package using Headless Chrome for taking screenshot which also provides CLI command
npm i page2image --save
import Screenshot from 'page2image';
const screenshot = new Screenshot({
waitUntil: 'networkidle',
waitForFunction: function waitForFunction() {
window.imageList = window.imageList || Array.from(document.getElementsByTagName('img'));
return window.imageList.length <= window.imageList.reduce((loaded, imageElm) => (
imageElm.complete ? loaded + 1 : loaded
), 0);
},
viewportConfig: { width: 1920, height: 1080 },
screenshotConfig: { fullPage: true, path: 'screenshot.png' },
});
screenshot
.takeScreenshot('https://github.com/Runjuu')
.then(process.exit);
Accept a url string as an argument and return an image Buffer
init(Config)
Accept a Config object and next time calling takeScreenshot will using new config to take screenshot
- waitUntil
- waitForFunction
- viewportConfig
- screenshotConfig
- waitFor
disableJS
<boolean>- whether or not to disable JavaScript on the page. Defaults to
false
- whether or not to disable JavaScript on the page. Defaults to
npm i page2image --global
# Single page
> page2image https://github.com/Runjuu --type=jpeg --quality=80
# Multi-page
> page2image https://github.com/Runjuu https://github.com/Runjuu --type=jpeg --quality=80
Page width in pixels.
Page height in pixels, default will take a full page screenshot.
Specify screenshot type, could be either 'jpeg' or 'png'.
The quality of the image, between 0-100. Not applicable to png images.
Specify device scale factor.
Whether or not to disable JavaScript on the page.
When to consider navigation succeeded. more details
Wait ${sleep} milliseconds to take screenshot.
- take screenshots via url
- take screenshots from local html file