
本文介绍在 selenide 框架中高效统计网页表格行数的方法,重点讲解如何通过 css 类选择器定位行元素并调用 `size()` 获取数量,适用于含动态行渲染的表格校验场景。
在 Selenide 中统计表格行数,关键在于准确识别代表“行”的 DOM 元素。从您提供的 HTML 结构可见:该表格虽使用 <table> 标签,但实际行内容并非标准 <tr>,而是多个同级 <div class="srringtable"> 元素嵌套在 <tbody> 内——这意味着需按行容器的 CSS 类而非语义化标签来定位。
正确做法是使用 Selenide 的集合选择器 $$(...)(返回 ElementsCollection),匹配所有 .srringtable 元素,再调用 .size() 方法获取数量:
将一个或多个 UI 原型图、线框图、产品截图或设计稿转换为标准化、可直接交付的 PRD 风格文档,供产品、设计、前端和测试共同使用。适用于 Codex 需要分析 PC 网页、桌面端、移动端、响应式页面、独立弹窗、表单、表格、看板、数据大屏或多页面流程截图,还原页面结构与交互,强制套用固定文档模板,抽取跨页面共享规则,或把一组原型沉淀为单页规范文档加整体业务流程文档的场景。不适用于纯视觉审美点评、代码实现、接口设计、埋点方案、竞品分析或无 UI 输入的业务需求创作。
int rowCount = $$(".srringtable").size();✅ 该语句简洁可靠,自动等待元素加载(默认隐式等待),无需手动判空或循环计数。
⚠️ 注意事项:
- 确保页面已完全渲染(Selenide 默认等待,但若存在异步加载,可加 waitUntil(Condition.visible, 10000) 增强健壮性);
- 若表格存在分页或懒加载,需先触发数据加载(如点击“显示15条”按钮),再执行计数;
- 避免误用 $()(单元素)——它仅返回第一个匹配项,$.size() 永远为 1,无法用于计数。
验证示例(完整断言逻辑):
// 模拟用户选择“每页显示15条”
$("#pageSizeSelect").selectOption("15");
// 等待新行渲染完成
$$(".srringtable").shouldHaveSize(15);
// 或获取数值进行自定义校验
int actualRows = $$(".srringtable").size();
assertThat(actualRows).isEqualTo(15);总结:Selenide 的 $$().size() 是统计动态行数的首选方案。核心在于精准定位行级容器(本例为 .srringtable),而非拘泥于 <tr> 标签结构——这正是现代前端框架(如 Vue/React 渲染表格)的常见实践。

















