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 |