Jump to content

Connect Leeroopedia MCP: Equip your AI agents to search best practices, build plans, verify code, diagnose failures, and look up hyperparameter defaults.

Principle:Puppeteer Puppeteer Dynamic Content Waiting

From Leeroopedia
Knowledge Sources
Domains Browser_Automation, Testing, Async_Programming
Last Updated 2026-02-11 23:00 GMT

Overview

A synchronization technique that pauses script execution until a specified DOM condition is met or a predicate function evaluates to true within the browser context.

Description

Dynamic Content Waiting addresses the fundamental challenge of browser automation: web pages are asynchronous and dynamic. Content may load lazily, appear after API calls, or change in response to user interaction. Rather than using fixed timeouts (which are fragile), this principle uses condition-based waiting.

Two main approaches:

  • waitForSelector: Wait until a CSS selector matches an element in the DOM, optionally requiring visibility or waiting for removal
  • waitForFunction: Wait until an arbitrary JavaScript function returns a truthy value, with configurable polling strategy

The polling mechanism supports three strategies:

  • raf: Check on every animation frame (requestAnimationFrame)
  • mutation: Check when the DOM changes (MutationObserver)
  • interval: Check at a fixed numeric interval (in milliseconds)

Usage

Use dynamic content waiting between navigation and data extraction to ensure the target content has loaded. Use waitForSelector when waiting for specific elements, and waitForFunction when waiting for complex conditions (e.g., a counter reaching a value, an API call completing).

Theoretical Basis

# Polling-based wait algorithm
1. Define predicate (selector or function)
2. Choose polling strategy (raf | mutation | interval)
3. Start polling loop:
   a. Evaluate predicate in browser context
   b. If truthy: resolve with result
   c. If falsy: schedule next check per strategy
4. If timeout exceeded: reject with TimeoutError

The internal WaitTask class manages the polling lifecycle, including cleanup on navigation and timeout handling.

Related Pages

Implemented By

Uses Heuristic

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment