-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathurlscreenshot.js
executable file
·49 lines (33 loc) · 1.14 KB
/
urlscreenshot.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env node
'use strict'
const puppeteer = require('puppeteer')
const minimist = require('minimist')
const { getDomain, validateDir } = require('./utils')
const { dir, screen } = require('./config')
const args = minimist(process.argv)
const getScreenshot = async (url) => {
if (!url) return console.warn('invalid URL. please use --url to pass the url argument')
try {
console.log('Luanching browser...')
const browser = await puppeteer.launch({headless: true})
console.log('Browser lauched')
console.log('Opening new page...')
const page = await browser.newPage()
await page.setViewport({width: screen.width, height: screen.height})
console.log('New Page Opened')
console.log(`Going to ${url}...`)
await page.goto(url)
console.log(`${url} loaded`)
console.log(`Taking Screenshot`)
validateDir(dir)
await page.screenshot({path: `${dir}/${getDomain(url)}.png`})
console.log(`Screenshot saved`)
console.log(`Closing browser...`)
await browser.close()
console.log(`Browser closed`)
} catch (error) {
console.log(error)
process.exit(1)
}
}
getScreenshot(args.url)