Java 如何验证是否刷新了表中的数据和列标题
给定:有一个3行5列的表和一个刷新按钮。触发“刷新”按钮后,数据以及列标题(3列标题)在每次刷新时都会发生更改,2列标题除外 我们如何使用selenium处理这种情况Java 如何验证是否刷新了表中的数据和列标题,java,selenium,Java,Selenium,给定:有一个3行5列的表和一个刷新按钮。触发“刷新”按钮后,数据以及列标题(3列标题)在每次刷新时都会发生更改,2列标题除外 我们如何使用selenium处理这种情况 谢谢假设您的表格被定义为正常: 所有其他单元格值: //table/descendant::*/td 2表达式结果可以使用 假设以上所有情况,您需要: 将3个标题单元格和15个正常单元格值收集到 还要注意的是,它提供了方便的类,在处理HTML表时可以使您的生活更轻松 通常情况下,数据是更改的,而不是表元素的属性/定位
谢谢假设您的表格被定义为正常:
//table/descendant::*/td
假设以上所有情况,您需要:
还要注意的是,它提供了方便的类,在处理HTML表时可以使您的生活更轻松 通常情况下,数据是更改的,而不是表元素的属性/定位器。您能否共享它的HTML代码,以便我可以查看并提供selenium代码。但没有看到这一点,我们不能说现代控件没有使用标记,而是使用ul和li标记。
//table/descendant::*/th[not(text()='Header 4') and not(text()='Header 5')]
//table/descendant::*/td
List<String> cellsBeforeRefresh = driver
.findElements(By
.xpath("//table/descendant::*/th[not(text()='Header 4') and not(text()='Header 5')] " +
"| //table/descendant::*/td"))
.stream()
.map(WebElement::getText)
.collect(Collectors.toList());
List<String> cellsAfterRefresh = driver
.findElements(By
.xpath("//table/descendant::*/th[not(text()='Header 4') and not(text()='Header 5')]" +
" | //table/descendant::*/td"))
.stream()
.map(WebElement::getText)
.collect(Collectors.toList());
if (cellsBeforeRefresh.equals(cellsAfterRefresh)) {
// tables are the same
} else {
//tables differ
}