diff --git a/downloader.py b/downloader.py index 14a3742..7ada086 100644 --- a/downloader.py +++ b/downloader.py @@ -265,12 +265,19 @@ def export_invoice_pdf( selector = f"a[data-reference-object-id='{invoice['reference_id']}']" anchor = page.locator(selector).first if anchor.count() == 0: - raise RuntimeError(f"Invoice link not found for reference id {invoice['reference_id']}") - anchor.scroll_into_view_if_needed() - with page.expect_popup() as popup_info: - anchor.click() - invoice_page = popup_info.value - invoice_page.wait_for_load_state("domcontentloaded") + try: + with page.expect_popup() as popup_info: + page.evaluate("printPayment", invoice["reference_id"]) + invoice_page = popup_info.value + invoice_page.wait_for_load_state("domcontentloaded") + except Exception: + raise RuntimeError(f"Invoice link not found for reference id {invoice['reference_id']}") + else: + anchor.scroll_into_view_if_needed() + with page.expect_popup() as popup_info: + anchor.click() + invoice_page = popup_info.value + invoice_page.wait_for_load_state("domcontentloaded") else: page = _goto_with_retry(context, page, invoice["url"]) invoice_page = page