diff --git a/Dockers/puppeteer-api/app/services/__pycache__/browser.cpython-313.pyc b/Dockers/puppeteer-api/app/services/__pycache__/browser.cpython-313.pyc index a4ed96a..165868a 100644 Binary files a/Dockers/puppeteer-api/app/services/__pycache__/browser.cpython-313.pyc and b/Dockers/puppeteer-api/app/services/__pycache__/browser.cpython-313.pyc differ diff --git a/Dockers/puppeteer-api/app/services/browser.py b/Dockers/puppeteer-api/app/services/browser.py index 435d853..ba471b6 100644 --- a/Dockers/puppeteer-api/app/services/browser.py +++ b/Dockers/puppeteer-api/app/services/browser.py @@ -61,8 +61,18 @@ async def screenshot_url_service(decoded_url, full_page=True): async def screenshot_operation(page): try: - await page.goto(decoded_url, wait_until='networkidle', timeout=30000) - await page.wait_for_timeout(1000) + # Start navigation early, then wait for progressively stronger load signals. + await page.goto(decoded_url, wait_until='domcontentloaded', timeout=30000) + await page.wait_for_load_state('load', timeout=30000) + + # Wait until the browser reports full document readiness. + await page.wait_for_function("document.readyState === 'complete'", timeout=30000) + + # Ensure network has gone quiet so dynamic requests can finish. + await page.wait_for_load_state('networkidle', timeout=30000) + + # Allow a brief settle period for final paints/animations. + await page.wait_for_timeout(1500) screenshot_bytes = await page.screenshot(full_page=full_page, type='png') return screenshot_bytes except Exception as e: