From 4265a2ea1cc756f53325f266f44bc8ebb54472e8 Mon Sep 17 00:00:00 2001 From: Rohit Rajan Date: Thu, 11 Dec 2025 21:25:36 +0530 Subject: [PATCH] fix: pagination detection all types --- server/src/sdk/browserSide/pageAnalyzer.js | 42 ++++++++++++++++------ server/src/sdk/selectorValidator.ts | 2 +- 2 files changed, 32 insertions(+), 12 deletions(-) diff --git a/server/src/sdk/browserSide/pageAnalyzer.js b/server/src/sdk/browserSide/pageAnalyzer.js index 24adb854..7215ab79 100644 --- a/server/src/sdk/browserSide/pageAnalyzer.js +++ b/server/src/sdk/browserSide/pageAnalyzer.js @@ -2124,20 +2124,11 @@ } const infiniteScrollScore = (options && options.disableScrollDetection) - ? 0 + ? 0 : detectInfiniteScrollScore(); const hasStrongInfiniteScrollSignals = infiniteScrollScore >= 8; const hasMediumInfiniteScrollSignals = infiniteScrollScore >= 5 && infiniteScrollScore < 8; - if (hasStrongInfiniteScrollSignals) { - const confidence = infiniteScrollScore >= 12 ? 'high' : infiniteScrollScore >= 10 ? 'medium' : 'low'; - return { - type: 'scrollDown', - selector: null, - confidence: confidence - }; - } - if (loadMoreButton && loadMoreScore >= 15) { const selector = generatePaginationSelector(loadMoreButton); return { @@ -2147,7 +2138,7 @@ }; } - if (nextButton && nextButtonScore >= 15 && !hasMediumInfiniteScrollSignals) { + if (nextButton && nextButtonScore >= 15) { const selector = generatePaginationSelector(nextButton); return { type: 'clickNext', @@ -2156,6 +2147,35 @@ }; } + if (hasStrongInfiniteScrollSignals) { + const confidence = infiniteScrollScore >= 12 ? 'high' : infiniteScrollScore >= 10 ? 'medium' : 'low'; + return { + type: 'scrollDown', + selector: null, + confidence: confidence + }; + } + + if (loadMoreButton && loadMoreScore >= 10) { + const selector = generatePaginationSelector(loadMoreButton); + const confidence = 'medium'; + return { + type: 'clickLoadMore', + selector: selector, + confidence: confidence + }; + } + + if (nextButton && nextButtonScore >= 10) { + const selector = generatePaginationSelector(nextButton); + const confidence = 'medium'; + return { + type: 'clickNext', + selector: selector, + confidence: confidence + }; + } + if (hasMediumInfiniteScrollSignals) { const confidence = infiniteScrollScore >= 7 ? 'medium' : 'low'; return { diff --git a/server/src/sdk/selectorValidator.ts b/server/src/sdk/selectorValidator.ts index 67b99e9e..de0e8d93 100644 --- a/server/src/sdk/selectorValidator.ts +++ b/server/src/sdk/selectorValidator.ts @@ -315,7 +315,7 @@ export class SelectorValidator { const win = window as any; if (typeof win.autoDetectPagination === 'function') { - const result = win.autoDetectPagination(selector, { disableScrollDetection: false }); + const result = win.autoDetectPagination(selector); return result; } else { console.error('autoDetectPagination function not found!');