This handy tool gives us the possibility to generate and compare website screenshots for any resolution possible resolution.
You need to have node version above 8 and bellow 10
-
If you want to install the project as standalone application, clone the project and run
npm install -
If you want to install the project as dependency of your application and use its API, run
npm install qa-screenshot-comparator
node src/app.js [options]
-h, --help
-v, --version
-u URL, --url
-s SIZE, --size
-f FOLDER, --folder
Generating screenshots for all resolutions
node src/app.js -u=http://example.com -s=all -f=first_website_folder
Generating screenshots for only for desktop
node src/app.js -u=http://example.com -s=desktop -f=first_website_folder
Generating screenshots for desktop and mobile
node src/app.js -u=http://example.com -s=desktop -s=mobile -f=first_website_folder
const {Generator} = require('qa-screenshot-comparator');
let generatorInstance = new Generator({
url: <Required> [String: website url],
resolutionName: <Required> [String|Array: resolution(s)], // Available options [ desktop, laptop, tablet, mobile, all ]
runtime: <Required> [String: The path for the generation of screenshots],
generateSitemap: <Optional - default: true> [Boolean: whether to generate sitemap for url],
authParams: <Optional - default: {}> [Object: HTTP basic auth params],
includeThumbnails: <Optional - default: false> [Boolean: whether to generate thumbnails for each image],
thumbnailWidth: <Optional - default: 240> [Number: thumnail width in pixels],
folderName: <Optional - default: automatically generated from url> [String: folder name],
onUrlFound: function (data) { },
onUrlFindError: function (data) { },
onUrlFindFinish: function (data) { },
onScreenshotGenerationStart: function (data) { },
onScreenshotGenerate: function (data) { },
onScreenshotCompare: function (data) { },
onScreenshotGenerationFinish: function (data) { },
onScreenshotThumbnailGenerate: function (data) { },
onScreenshotThumbnailGenerateError: function (data) { }
});
generatorInstance.run();let authParams = {
HTTP_BASIC_AUTH: [Boolean: whether to run authentication],
HTTP_BASIC_AUTH_USERNAME: [String: auth username],
HTTP_BASIC_AUTH_PASSWORD: [String: auth password]
};resolutionName |
pixels |
|---|---|
| desktop | 1440px |
| laptop | 1024px |
| tablet | 768px |
| mobile | 360px |
| Events | Description | Response object properties |
|---|---|---|
| onUrlFind | Triggered on each url find event while generating site map |
|
| onUrlFindError | Triggered on site map url generation error |
|
| onUrlFindFinish | Triggered when site map generation is finished |
|
| onScreenshotGenerationStart | Triggered when screenshot generation starts for specific resolution |
|
| onScreenshotGenerate | Triggered when each screenshot image is generated for specific resolution |
|
| onScreenshotCompare | Triggered when existing screenshot is compared to newly generated image for specific resolution. newImage and stableImage will be only present if comparator found any changes. |
|
| onScreenshotGenerationFinish | Triggered when screenshot generation is finished for specific resolution |
|
| onScreenshotThumbnailGenerate | Triggered when thumbnail is generated for a specific image | |
| onScreenshotThumbnailGenerateError | Triggered when thumbnail generation failed for a specific image |