From 0009a50dc5edfa1808a4b93df7f4d22c25261333 Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Thu, 2 Apr 2026 10:48:54 +0000 Subject: [PATCH] check for end of table by inspecting content instead of whether Next button is disabled --- backend/ecmk_fetcher/handler/handler.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/backend/ecmk_fetcher/handler/handler.py b/backend/ecmk_fetcher/handler/handler.py index c4c1385c..4c5299d0 100644 --- a/backend/ecmk_fetcher/handler/handler.py +++ b/backend/ecmk_fetcher/handler/handler.py @@ -169,19 +169,25 @@ def go_to_assessment_details(page: Page, row: Locator) -> None: logger.info("Assessment details page fully loaded") +def get_first_row_signature(page: Page) -> str: + first_row = page.locator("#assessmentDatatable tbody tr").first + return first_row.inner_text() + + def go_to_next_page(page: Page) -> bool: - next_button: Locator = page.locator("#assessmentDatatable_next a") + first_signature_before = get_first_row_signature(page) - class_attr: Optional[str] = next_button.get_attribute("class") or "" - - if "disabled" in class_attr: - logger.info("No more pages") - return False - - next_button.scroll_into_view_if_needed() + next_button = page.locator("#assessmentDatatable_next a") next_button.click() page.wait_for_timeout(2000) + + first_signature_after = get_first_row_signature(page) + + if first_signature_before == first_signature_after: + logger.info("No page change detected - reached end of table") + return False + return True