squint-cli
Version:
Squint makes visual reviews of web app releases easy
32 lines (31 loc) • 1.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.takeScreenshot = exports.screenshot = void 0;
const utils_1 = require("./utils");
async function screenshot(pagePool, config) {
await pagePool.use(async (page) => {
await takeScreenshot(page, config.screenshotUrl, config.outFile, config);
});
}
exports.screenshot = screenshot;
async function takeScreenshot(page, url, outputFile, config) {
await page.goto(url, { waitUntil: 'networkidle2' });
if (config.js) {
await utils_1.evalJs(config.js, page);
}
let element = null;
if (config.selector) {
await page.waitForSelector(config.selector);
element = await page.$(config.selector);
}
else if (config.selectorJs) {
element = await utils_1.evalJs(config.selectorJs, page);
}
if (element) {
await element.screenshot({ path: outputFile, ...config.screenshotOptions });
}
else {
await page.screenshot({ path: outputFile, fullPage: true, ...config.screenshotOptions });
}
}
exports.takeScreenshot = takeScreenshot;