From 794d540f81d3cb19b4d59945076aeec561dbe145 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Sat, 17 Aug 2024 23:27:17 +0530 Subject: [PATCH] feat: move scrollDown & scrollUp inside window --- maxun-core/src/browserSide/scraper.js | 41 +++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/maxun-core/src/browserSide/scraper.js b/maxun-core/src/browserSide/scraper.js index 25c4c150..0ae6b31f 100644 --- a/maxun-core/src/browserSide/scraper.js +++ b/maxun-core/src/browserSide/scraper.js @@ -369,6 +369,8 @@ async function clickNextPagination(selector, scrapedData, limit) { } } } + + // Add the record to the scrapedData array scrapedData.push(record); } else { @@ -425,4 +427,43 @@ async function clickNextPagination(selector, scrapedData, limit) { return results; }; + + window.scrollDown = async(selector, limit) { + let previousHeight = 0; + let itemsLoaded = 0; + + while (itemsLoaded < limit) { + window.scrollBy(0, window.innerHeight); + await new Promise(resolve => setTimeout(resolve, 1000)); + + const currentHeight = document.body.scrollHeight; + + if (currentHeight === previousHeight) { + break; // No more items to load + } + + previousHeight = currentHeight; + itemsLoaded += document.querySelectorAll(selector).length; + } + } + + window.scrollUp = async(selector, limit) { + let previousHeight = 0; + let itemsLoaded = 0; + + while (itemsLoaded < limit) { + window.scrollBy(0, -window.innerHeight); + await new Promise(resolve => setTimeout(resolve, 1000)); + + const currentHeight = document.body.scrollHeight; + + if (currentHeight === previousHeight) { + break; // No more items to load + } + + previousHeight = currentHeight; + itemsLoaded += document.querySelectorAll(selector).length; + } + } + })(window); \ No newline at end of file