playwright

Playwright: how to wait until there is no animation on the page?


I'm trying to figure out how to check whether the page has fully loaded in Playwright. await page.waitForLoadState('networkidle'); doesn't always work for me on Javascript-heavy sites. I've resorted to taking a screenshot base64, waiting 100 ms, taking a new screenshot, and comparing whether those are the same. However this doesn't seem ideal, is there any way to ask Playwright when the last animation frame was redrawn?


Solution

  • There are several options that may help you.

    1. Solution 1:

    First, you can maybe determine which element is loading last, and then go with

    page.waitForSelector('yourselector')
    

    or even wait for multiple selectors to appear

    page.waitForSelector('yourselector1','yourselector2')
    

    2. Solution 2

    page.waitForLoadState('domcontentloaded')
    

    Because

    page.waitForLoadState('networkidle') 
    

    by default will wait for network event and if 0.5 seconds nothing is network trafficking it will say, I am no longer need to wait. And that is why you maybe have stohastic beh.