You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Playwright-Java验证FDIC失败银行列表共570条数据?

问题分析与解决方案

核心问题

你的代码没有等待页面加载完所有570条数据就执行了count(),导致获取的是未完全加载时的行数,而非最终总数。不需要手动滚动页面,但必须等待数据加载完成。

修改后的代码

Playwright playwright = Playwright.create();
Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false));
BrowserContext browserContext = browser.newContext();
Page page = browserContext.newPage();
page.navigate("https://www.fdic.gov/bank-failures/failed-bank-list");

// 选择"All"选项并提交
Locator dropdown = page.locator("[id=edit-items-per-page]");
dropdown.selectOption("All");
page.locator("[id=edit-submit-failed-bank-list]").click();

// 等待页面网络请求完全空闲,确保所有数据加载完毕
page.waitForLoadState(LoadState.NETWORKIDLE);

// 或者直接等待目标行数出现,验证更精准
Locator listLocator = page.locator(".sticky-table tbody tr");
listLocator.waitFor(new Locator.WaitForOptions().setCount(570));

// 输出最终统计数量
System.out.println(listLocator.count());

// 清理资源
browser.close();
playwright.close();

关键改进点

  • 添加等待逻辑:
    1. page.waitForLoadState(LoadState.NETWORKIDLE):等待页面所有网络请求停止(超过500ms无新请求),确保数据全部加载完成。
    2. listLocator.waitFor(...):直接等待目标行数出现,精准匹配你的验证需求。
  • 资源清理:补充browser.close()和playwright.close(),避免浏览器资源泄漏。

额外说明

针对该FDIC页面,选择"All"并点击Apply后会一次性加载所有失败银行数据,无需手动滚动触发加载。如果后续遇到需要滚动才渲染的动态表格,可使用listLocator.scrollIntoViewIfNeeded()循环滚动,但此场景下完全不需要。

内容的提问来源于stack exchange,提问作者codeMonster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 14:37:06