October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk6 min

Capture a Dynamic Web Table After Its Rows Load Asynchronously

Navigation can finish before JavaScript fills a table. Use a content-based wait, then extract or screenshot the rendered rows with Playwright or Selenium.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Wait for evidence that the table’s data is actually present—not just for the page to finish navigating—then extract or screenshot the rendered table. In Playwright, make the wait depend on an expected row or cell; in Selenium, use an explicit wait for the needed content. This avoids capturing an empty or partly populated table when JavaScript loads rows later.

Why page load does not mean the table is ready

A browser can finish navigating before client-side JavaScript fetches and inserts table rows. Selenium notes that JavaScript may still change a page after the document reaches its selected ready state, so navigation completion alone does not prove that the data is ready (Selenium waiting documentation).

Wait for a state that represents the result you need: an expected row or cell is visible, a loading indicator disappears, or a result count reaches its expected value. A positive content check is often the clearest signal. Selectors and expected values must match the target page; there is no universal selector or completion condition.

Capture the populated table with Playwright

Wait for a row, then read or screenshot the table

Use a stable locator, preferably one based on accessible semantics or an application-owned selector. In Playwright Test, a web-first assertion retries until it passes or reaches its timeout. The example below waits for a row containing a page-specific value, reads the currently rendered cells, and saves an image of the table.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Arducam 8MP USB Camera Module with HDR, Autofocus Lightburn Camera, USB 2.0 Webcam with Multiple preset AI Resolutions for Raspberry Pi, Windows, Linux, Android, Mac OS
  • Plug-and-Play USB Camera Module: Experience ultimate convenience with our plug-and-play USB camera module. This 8MP camera is instantly recognized by Windows, Linux, Android, and macOS without any extra drivers. Just connect the USB and immediately start capturing crisp images, making it a perfect mini USB camera for rapid deployment in any project
  • AI Resolution for Advanced Applications: Leverage multiple preset AI image resolutions to train and deploy your models seamlessly. This USB webcam and 3D printer camera eliminates the need for manual image cropping, delivering ready-to-process data straight from the sensor. It’s an ideal vision solution for developers and makers
  • Autofocus & High-Definition Clarity: Equipped with a premium autofocus lens, this 4K mini camera automatically adjusts to maintain sharpness at various distances. Whether you’re using it as a lightburn camera for laser engraver or for detailed inspection, it delivers consistently clear and professional USB camera 4K quality video
  • Robust & Reliable USB Security Camera: Built for durability and performance, this USB security camera offers steadfast monitoring with high-resolution imaging. Its versatile mounting and plug-and-play operation make it suitable for both home security setups and professional surveillance systems
  • Upgraded Option with HDR: The enhanced model includes High Dynamic Range (HDR), an autofocus lens, and a rugged metal case. This upgraded USB camera module is especially suited for demanding applications like laser engraving with LightBurn or as a high-end 3D printer camera
import { test, expect } from '@playwright/test';

test('capture the populated results table', async ({ page }) => {
  await page.goto('https://example.com/results');

  const table = page.locator('table#results');
  const expectedRow = table.locator('tbody tr', { hasText: 'Expected value' });

  await expect(expectedRow).toBeVisible({ timeout: 15000 });

  const rows = await table.locator('tbody tr').evaluateAll((elements) =>
    elements.map((row) =>
      Array.from(row.querySelectorAll('th, td'), (cell) => cell.textContent?.trim() ?? '')
    )
  );

  console.log(rows);
  await table.screenshot({ path: 'results-table.png' });
});

Replace the URL, selector, expected text, and timeout with values appropriate to the page. The timeout is a bound for the wait, not a claim about how long any site takes to populate its table. If the expected row may not be known in advance, wait for another meaningful completion signal, such as the loading indicator becoming hidden or a verified row count.

Use an equivalent wait outside Playwright Test

The expect assertion above comes from Playwright Test. If you are using Playwright without that test runner, wait for the same content condition with a supported locator wait, then perform the extraction. Playwright recommends locator helpers and web-first assertions; most actions auto-wait, so an explicit page load-state wait is often unnecessary (Playwright Page API).

Rank #2
Dell Pro 16 Plus PB16255 Laptop, 16" FHD+, AMD Ryzen AI 7 PRO 350, 32GB/2TB
  • ENGINEERED FOR AI & MOBILITY - Meet the Dell Pro 16 Plus, the AI-enhanced evolution of the Latitude 5550. Engineered for on-the-go productivity, it features a slim and lightweight design, delivers up to 11.9 hours of battery life, and supports ExpressCharge capability to keep you efficient. Boasting a durable aluminum chassis and having passed MIL-STD 810H tests, it offers robust reliability for professionals on the move, from the office to demanding field environments
  • POWERFUL PERFORMANCE – The Dell Pro 16 Plus delivers power-efficient performance for demanding workloads with an AI PC powered by the AMD Ryzen AI 7 PRO 350 processor (up to 5.0GHz) and integrated Radeon 860M Graphics. Equipped with 32GB LPDDR5x RAM and 2TB M.2 NVMe PCIE SSD, enabling smooth multitasking and fast loading across a wide range of applications
  • COPILOT+ PC AI POWERHOUSE - The dedicated NPU delivers 50 TOPS for local AI processing without relying on the cloud. It enables Recall (effortless retrieval of past actions and content), Cocreate (AI image tools), Windows Studio Effects (auto-framing/background blur for video calls), and Live Captions (real-time translation). It redefines productivity and creativity with seamless, offline AI acceleration
  • IMMERSIVE DISPLAY - Features a 16-inch WUXGA (1920x1200) display with narrow borders, 300 nits brightness, and anti-glare coating to maximize screen real estate and reduce eye strain during extended use. Expand your workspace by connecting up to 3 external monitors via HDMI or Thunderbolt 4, with a max resolution of up to 4K@60Hz without docking station
  • ADVANCED CONNECTIVITY -With Thunderbolt 4, USB-A, and HDMI 2.1, MicroSD card reader, Global Headset Jack and RJ45 Ethernet port, you can easily connect external displays, storage devices, and essential peripherals. Stay fast and reliable on the go with Wi-Fi 7 and Bluetooth 5.4, perfect for video calls, cloud work, and wireless devices without lag. The 1080p IR camera with temporal noise reduction ensures crisp video calls in any lighting and secure facial recognition login. Plus, the backlit keyboard enables precise typing in low-light environments

Do not use network idle as a substitute for table readiness

Playwright defines networkidle as having no network connections for at least 500 ms and discourages using it as a test readiness signal. That interval is not a general table-loading duration. A page can be quiet while its table is still empty, or continue making unrelated requests after the table is ready. Prefer a wait tied to the content you need.

Know what the screenshot and row read include

Locator evaluation reads elements currently rendered in the DOM. A locator screenshot captures that target after Playwright’s screenshot behavior has waited for actionability and scrolled it into view. Neither operation proves that a paginated, virtualized, or scroll-loaded table contains every record. For those tables, interact with each page or scroll segment, wait for its content, and collect or capture each segment; describe the result as complete only after verifying that all required rows were rendered.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Software Engineer Definition Sticker - Funny Programmer Vinyl Decal - 5 in
  • Size: 5" x 4.6"
  • Al weather vinyl sticker
  • Phone sticker, laptop sticker, car sticker, water bottle sticker, and so many more applications!
  • Peel & stick, simple application, reusable
  • Made in the USA

Use Selenium when it fits your project

Selenium’s WebDriverWait polls for an expected condition. Wait for the actual row or cell you need, then read the table. This Python example uses Selenium’s explicit wait for a row containing expected text:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

URL = "https://example.com/results"
TABLE = (By.CSS_SELECTOR, "table#results")
EXPECTED_ROW = (By.XPATH, "//table[@id='results']//tbody/tr[contains(., 'Expected value')]")

driver = webdriver.Chrome()
try:
    driver.get(URL)

    wait = WebDriverWait(driver, 15)
    wait.until(EC.visibility_of_element_located(EXPECTED_ROW))

    table = driver.find_element(*TABLE)
    rows = [
        [cell.text.strip() for cell in row.find_elements(By.CSS_SELECTOR, "th, td")]
        for row in table.find_elements(By.CSS_SELECTOR, "tbody tr")
    ]
    print(rows)
finally:
    driver.quit()

Adjust the locator and expected value to the page, and choose a finite timeout that suits your application. If the condition is not met, treat the timeout as a meaningful failure: the table did not reach the expected state. Selenium warns against mixing implicit and explicit waits because the combined timing can be unpredictable; use the explicit condition for this workflow rather than layering in an implicit wait (Selenium waiting documentation).

Rank #4
Web Developer Coding Skeleton In Front of Laptop Halloween T-Shirt
  • For programmers and web developers who have a sense of gothic macabre about them. Perfect for coding meetups, gaming sessions, or casual outings. Do you live for code? Are you a programmer, IT professional or developer who is constantly coding?
  • Web Developer Coding Skeleton In Front of Laptop Halloween. Perfect for dark mode developers, programmers, software engineers, anyone in tech with a dark side who lives at their computer. Great for Halloween or the rest of the year.
  • Lightweight, Classic fit, Double-needle sleeve and bottom hem

Choose the wait and capture method for the task

  • Need structured data: wait for the relevant content, then map rendered rows and cells to strings.
  • Need a visual record: wait for table readiness, then take a screenshot of the table locator.
  • Need every record: account for pagination, virtualization, and scroll loading; the visible DOM alone may be only one segment.
  • Choosing Playwright or Selenium: consider your project’s language and browser setup, whether you need a screenshot or structured rows, how stable the page’s selectors and completion signals are, and the amount of pagination or scrolling. Both can automate waits; the available documentation does not support a universal claim that one is always better.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot missing or incomplete rows

The wait times out

Check that the selector matches the live page, that the expected text is actually present, and that the row is supposed to be visible in the current table segment. If the page has a loading indicator or count that better represents completion, wait for that instead. Do not turn a timeout into a successful capture of an empty table.

The screenshot is blank or the extracted array is empty

Confirm that the readiness wait completed before the screenshot or DOM read, and verify that the table locator points to the rendered table rather than a wrapper or hidden template. If the rows load only after a filter, click, or scroll, perform that interaction before waiting.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
I Turn Coffee Into Code Funny Programmer Sticker - Software Engineer Vinyl Decal for Laptops, Monitors, and Water Bottles - Coding & Tech Humor - Durable, Waterproof Die-Cut Tech Sticker
  • The Ultimate Developer Humor: Celebrate the fuel behind your best lines of code with this "I Turn Coffee Into Code" sticker. It is a must-have accessory for software engineers, web developers, data scientists, and computer science students.
  • Premium Waterproof & Heat-Resistant: Crafted from high-quality, durable vinyl that is 100% waterproof and heat-resistant. Perfect for sticking on high-performance laptops, coffee tumblers, or office water bottles without worrying about peeling or fading.
  • Sleek Professional Design: Featuring a bold black and white aesthetic with a clean coffee cup icon, this die-cut decal looks professional and stylish on MacBooks, PC cases, and office monitors.
  • Easy Application, Zero Residue: Equipped with a strong adhesive that stays put through daily wear. If you upgrade your hardware, it peels off cleanly without leaving any sticky mess or residue behind on your expensive electronics.
  • Perfect Tech Gift: Looking for a great gift for a programmer, IT professional, or coding student? This decal makes an excellent stocking stuffer, "new job" gift, or secret santa present for your tech-savvy coworkers.

Some rows are absent

Determine whether the table paginates, virtualizes off-screen rows, or loads more data on scroll. Read or screenshot each relevant segment after triggering it and verifying its content. A screenshot of the visible table is not evidence that unrendered rows were captured.

Wait duration seems inconsistent

A fixed sleep may be too short on a slow response and unnecessarily long on a fast one. Prefer a finite wait for a page-specific content condition. Avoid combining Selenium implicit and explicit waits; Selenium documents that doing so can produce unpredictable total wait times.

Or skip the browser setup

ScreenshotNeo can return a screenshot through one GET request. For example, this cURL request captures a page as WebP:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com/results -o shot.webp

See the ScreenshotNeo documentation for request options. Cookie banners, newsletter popups, and chat widgets are removed before capture; each cleanup step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers indicate the page verdict and billing status. ScreenshotNeo also provides an MCP server with screenshot, page-info, and PDF-capture tools for AI agents. The free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. Sign up for 1,000 free screenshots a month, with no card.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. Shenzhen desk3 min
    HONOR Expands Beyond Smartphones With Humanoid Robot RevealHONOR said it unveiled its first humanoid robot at MWC 2026 and named shopping assistance, workplace inspections, and supportive companionship as intended uses. Later Robotics D1 claims and a reported…
  2. Cupertino desk5 min
    Apple Unveils AirPods Max 2: The Upgrade That Should Have Happened Years AgoAirPods Max 2 adds H2-powered audio features and Apple claims up to 1.5× more effective ANC, but its design, Smart Case, and 20-hour battery rating are unchanged. Wired lossless audio…
  3. Cupertino desk4 min
    Apple’s OLED Touch MacBooks Are Coming—but the Dynamic Island Is the Real GambleApple has not announced an OLED touchscreen MacBook, but reports point to high-end models arriving in late 2026 or early 2027. The reported Mac Dynamic Island could be useful, but…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.