From 7755165c6c98327d0821f72cd57fa2eb7bd8d7a3 Mon Sep 17 00:00:00 2001 From: Vinicius Tinti Date: Fri, 29 Dec 2017 14:05:03 -0200 Subject: [PATCH] Add delay option in tools Allow user to specify a delay in milliseconds before taking the screenshot. The delay is an optional argument and defaults to 0. Signed-off-by: Vinicius Tinti --- README.md | 7 +++++++ tools/fullScreenshot.js | 12 ++++++++++++ tools/fullScreenshotSeries.js | 12 ++++++++++++ tools/screenshot.js | 12 ++++++++++++ tools/screenshotSeries.js | 12 ++++++++++++ 5 files changed, 55 insertions(+) diff --git a/README.md b/README.md index 9e55770..71ebc4f 100644 --- a/README.md +++ b/README.md @@ -112,6 +112,13 @@ docker run --shm-size 1G --rm -v /tmp/screenshots:/screenshots \ 'https://www.google.com' 1366x768 ``` +### screenshot tools syntax + +` x []` + +* `delay_in_ms`: is optional (defaults to `0`) + * Waits for `delay_in_ms` milliseconds before taking the screenshot + ### `screenshot` ```bash diff --git a/tools/fullScreenshot.js b/tools/fullScreenshot.js index a2dfebb..050438f 100644 --- a/tools/fullScreenshot.js +++ b/tools/fullScreenshot.js @@ -1,5 +1,9 @@ #!/usr/bin/env node +function sleep(ms) { + return new Promise(resolve => {if (ms > 0) {setTimeout(resolve,ms)}}) +} + process.on('uncaughtException', (error) => { console.error(error); process.exit(1); @@ -36,6 +40,12 @@ if (typeof process.argv[3] === 'string') { var [width, height] = process.argv[3].split('x').map(v => parseInt(v, 10)); } +var delay = 0; + +if (typeof process.argv[4] === 'string') { + delay = parseInt(process.argv[4], 10); +} + var isMobile = false; let filename = `full_screenshot_${width}_${height}.png`; @@ -59,6 +69,8 @@ let filename = `full_screenshot_${width}_${height}.png`; await page.goto(url, {waitUntil: 'networkidle2'}); + await sleep(delay); + await page.screenshot({path: `/screenshots/${filename}`, fullPage: true}); browser.close(); diff --git a/tools/fullScreenshotSeries.js b/tools/fullScreenshotSeries.js index 08efbe2..eb692cb 100644 --- a/tools/fullScreenshotSeries.js +++ b/tools/fullScreenshotSeries.js @@ -1,5 +1,9 @@ #!/usr/bin/env node +function sleep(ms) { + return new Promise(resolve => {if (ms > 0) {setTimeout(resolve,ms)}}) +} + process.on('uncaughtException', (error) => { console.error(error); process.exit(1); @@ -36,6 +40,12 @@ if (typeof process.argv[3] === 'string') { var [width, height] = process.argv[3].split('x').map(v => parseInt(v, 10)); } +var delay = 0; + +if (typeof process.argv[4] === 'string') { + delay = parseInt(process.argv[4], 10); +} + var isMobile = false; let filename = `${dateStr}_full_screenshot_${width}_${height}.png`; @@ -59,6 +69,8 @@ let filename = `${dateStr}_full_screenshot_${width}_${height}.png`; await page.goto(url, {waitUntil: 'networkidle2'}); + await sleep(delay); + await page.screenshot({path: `/screenshots/${filename}`, fullPage: true}); browser.close(); diff --git a/tools/screenshot.js b/tools/screenshot.js index 9d25f54..bc106b5 100644 --- a/tools/screenshot.js +++ b/tools/screenshot.js @@ -1,5 +1,9 @@ #!/usr/bin/env node +function sleep(ms) { + return new Promise(resolve => {if (ms > 0) {setTimeout(resolve,ms)}}) +} + process.on('uncaughtException', (error) => { console.error(error); process.exit(1); @@ -36,6 +40,12 @@ if (typeof process.argv[3] === 'string') { var [width, height] = process.argv[3].split('x').map(v => parseInt(v, 10)); } +var delay = 0; + +if (typeof process.argv[4] === 'string') { + delay = parseInt(process.argv[4], 10); +} + var isMobile = false; let filename = `screenshot_${width}_${height}.png`; @@ -59,6 +69,8 @@ let filename = `screenshot_${width}_${height}.png`; await page.goto(url, {waitUntil: 'networkidle2'}); + await sleep(delay); + await page.screenshot({path: `/screenshots/${filename}`, fullPage: false}); browser.close(); diff --git a/tools/screenshotSeries.js b/tools/screenshotSeries.js index 5c3abda..f9928a5 100644 --- a/tools/screenshotSeries.js +++ b/tools/screenshotSeries.js @@ -1,5 +1,9 @@ #!/usr/bin/env node +function sleep(ms) { + return new Promise(resolve => {if (ms > 0) {setTimeout(resolve,ms)}}) +} + process.on('uncaughtException', (error) => { console.error(error); process.exit(1); @@ -36,6 +40,12 @@ if (typeof process.argv[3] === 'string') { var [width, height] = process.argv[3].split('x').map(v => parseInt(v, 10)); } +var delay = 0; + +if (typeof process.argv[4] === 'string') { + delay = parseInt(process.argv[4], 10); +} + var isMobile = false; let filename = `${dateStr}_screenshot_${width}_${height}.png`; @@ -59,6 +69,8 @@ let filename = `${dateStr}_screenshot_${width}_${height}.png`; await page.goto(url, {waitUntil: 'networkidle2'}); + await sleep(delay); + await page.screenshot({path: `/screenshots/${filename}`, fullPage: false}); browser.close();