@applitools/screenshoter
Version:
Applitools universal screenshoter for web and native applications
37 lines (30 loc) • 1.19 kB
JavaScript
const utils = require('@applitools/utils')
const makeTakeViewportScreenshot = require('./take-viewport-screenshot')
async function takeSimpleScreenshot({
context,
region,
captureStatusBar,
keepNavigationBar,
wait,
stabilization,
debug = {},
logger,
}) {
logger.verbose('Taking image of...')
const driver = context.driver
const takeViewportScreenshot = await makeTakeViewportScreenshot({logger, driver, stabilization, debug})
if (typeof wait === 'function') await wait()
// using `wait` as a number should not happen with new core versions, but we still support it for backward copatability
else await utils.general.sleep(wait)
const image = await takeViewportScreenshot({captureStatusBar, keepNavigationBar})
if (region) {
const cropRegion = await driver.getRegionInViewport(context, region)
if (utils.geometry.isEmpty(cropRegion)) throw new Error('Screenshot region is out of viewport')
image.crop(cropRegion)
await image.debug({path: debug.path, suffix: 'region'})
return {image, region: cropRegion}
} else {
return {image, region: utils.geometry.region({x: 0, y: 0}, image.size)}
}
}
module.exports = takeSimpleScreenshot