Skip to main content
Automatically scrolls through infinite scroll content by repeatedly scrolling to the bottom until no new content loads or maximum scroll limit is reached.
async def scroll_to_load_content(
    source: Page | Locator,
    *,
    on_scroll_progress: Callable[[], None],
    max_scrolls: int,
    delay_s: float,
    min_height_change: int,
)

Examples

from typing import TypedDict
from playwright.async_api import Page
from intuned_browser import scroll_to_load_content
class Params(TypedDict):
    pass
async def automation(page: Page, params: Params, **_kwargs):
    # Scroll through entire page content
    await page.goto("https://sandbox.intuned.dev/infinite-scroll")
    await scroll_to_load_content(
        source=page,
    )
    # Will keep scrolling until the page has loaded all content or the max_scrolls is reached.

Arguments

source
Page | Locator
required
The Playwright Page or Locator to scroll.
on_scroll_progress
Callable
Optional callback function to call during each scroll iteration. Defaults to lambda: None.
max_scrolls
int
Maximum number of scroll attempts before stopping. Defaults to 50.
delay_s
float
Delay in seconds between scroll attempts. Defaults to 0.1.
min_height_change
int
Minimum height change in pixels required to continue scrolling. Defaults to 100. If the page has loaded all content and we still haven’t reached the max_scrolls, the min_height_change will detect that no new content is loaded and stop the scrolling.

Returns: None

Function completes when scrolling is finished