phantomas
Version:
Headless Chromium-based web performance metrics collector and monitoring tool
38 lines (29 loc) • 991 B
JavaScript
/**
* Allow page to be scrolled after it is loaded
*
* Pass --scroll as an option in CLI mode
*/
;
module.exports = function (phantomas) {
const scroll = phantomas.getParam("scroll") === true;
if (!scroll) {
phantomas.log(
"Scroll: pass --scroll option to scroll down the page when it's loaded"
);
return;
}
phantomas.log("Scroll: the page will be scrolled down when loaded");
phantomas.on("beforeClose", (page) => {
return new Promise(async (resolve) => {
phantomas.log("Scrolling the page...");
/* istanbul ignore next */
await page.evaluate(() => document.body.scrollIntoView(false));
/* istanbul ignore next */
const scrollOffset = await page.evaluate(() => document.body.scrollTop);
// wait for lazy loading to do its job
phantomas.log("Scrolled the page to %d px, wait a bit", scrollOffset);
phantomas.emit("scroll", scrollOffset);
setTimeout(resolve, 500);
});
});
};