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