@browserless/screenshot 10.7.13 → 10.8.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +2 -2
  2. package/src/index.js +19 -11
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@browserless/screenshot",
3
3
  "description": "Take a clean screenshot of any website",
4
4
  "homepage": "https://browserless.js.org/#/?id=screenshoturl-options",
5
- "version": "10.7.13",
5
+ "version": "10.8.0-beta.3",
6
6
  "main": "src/index.js",
7
7
  "author": {
8
8
  "email": "hello@microlink.io",
@@ -66,5 +66,5 @@
66
66
  "timeout": "2m",
67
67
  "workerThreads": false
68
68
  },
69
- "gitHead": "9ed950add1325d6f93d072d6475f1603e4b97d45"
69
+ "gitHead": "99ff22f6be1b8dfd3b5ebeeef36cc38ef583b6fb"
70
70
  }
package/src/index.js CHANGED
@@ -14,6 +14,17 @@ const getBoundingClientRect = element => {
14
14
  return { top, left, height, width, x, y }
15
15
  }
16
16
 
17
+ const takeScreenshot = async ({ page, goto, opts }) => {
18
+ let screenshot
19
+ screenshot = await page.screenshot(opts)
20
+ const isWhite = await isWhiteScreenshot(screenshot)
21
+ if (isWhite) {
22
+ await goto.waitUntilAuto(page, opts)
23
+ screenshot = await page.screenshot(opts)
24
+ }
25
+ return { isWhite }
26
+ }
27
+
17
28
  const waitForImagesOnViewport = page =>
18
29
  page.$$eval('img[src]:not([aria-hidden="true"])', elements =>
19
30
  Promise.all(
@@ -82,16 +93,6 @@ module.exports = ({ goto, ...gotoOpts }) => {
82
93
  )
83
94
  }
84
95
 
85
- const takeScreenshot = async opts => {
86
- screenshot = await page.screenshot(opts)
87
- const isWhite = await isWhiteScreenshot(screenshot)
88
- if (isWhite) {
89
- await goto.waitUntilAuto(page, opts)
90
- screenshot = await page.screenshot(opts)
91
- }
92
- return { isWhite }
93
- }
94
-
95
96
  page.on('dialog', dialog => pReflect(dialog.dismiss()))
96
97
 
97
98
  const timeScreenshot = timeSpan()
@@ -111,7 +112,11 @@ module.exports = ({ goto, ...gotoOpts }) => {
111
112
  waitForElement(page, element),
112
113
  beforeScreenshot(response)
113
114
  ])
114
- const { isWhite } = await takeScreenshot({ ...opts, ...screenshotOpts })
115
+ const { isWhite } = await takeScreenshot({
116
+ page,
117
+ goto,
118
+ opts: { ...opts, ...screenshotOpts }
119
+ })
115
120
  debug('screenshot', { waitUntil, isWhite, duration: timeScreenshot() })
116
121
  }
117
122
  }
@@ -122,3 +127,6 @@ module.exports = ({ goto, ...gotoOpts }) => {
122
127
  }
123
128
  }
124
129
  }
130
+
131
+ module.exports.takeScreenshot = takeScreenshot
132
+ module.exports.isWhiteScreenshot = isWhiteScreenshot