browser_extract_list
Extract every row from long virtualized lists by automatically scrolling until all data loads. Use for mail, tables, or search results to capture complete, deduplicated content when standard page reads miss rows.
Instructions
Read EVERY row of a long or virtualised list by scrolling its container until no new rows appear. Use this instead of browser_get_page_content whenever a page shows a repeating list longer than the viewport - mail lists (Outlook, Gmail), invoice/billing tables, search results, transaction histories. Those UIs keep only ~7 rows in the DOM at a time, so a single page read returns a sliver and looks complete. Pass the CSS selector of one repeating row (e.g. '[role="option"]', 'tr', '[role="listitem"]'); the scrollable ancestor is found automatically. Returns deduplicated row text plus reached_end so you know whether you saw the whole list.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| wait_ms | No | Wait after each scroll so new rows can render (default 350) | |
| max_rows | No | Stop after this many unique rows (default 500, max 5000) | |
| selector | Yes | CSS selector matching ONE repeating row (e.g. '[role="option"]' in Outlook, 'tr' in a table) | |
| container | No | Optional CSS selector for the scrollable container. Omit to auto-detect the row's nearest scrollable ancestor. | |
| scroll_step | No | Pixels per scroll. Omit for 85% of the container height. | |
| stable_rounds | No | Consecutive scrolls with no new rows before stopping (default 3) |