我需要使用 Selenium 对两个表执行数据验证。
给定一个正确标记的包含数据的 HTML 表格:
<table>
<tbody>
<tr>
<td>A</td>
<td>B</td>
<td>C</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</tbody>
</table>
我想使用 Selenium 将该表“反序列化”(收集其数据)为二维数组 ( String[][]
)。我想这样做的原因是我有另一个 HTML 表(在另一个网页上),其中包含据说存储在其中的相同数据 - 我需要在这两个表之间执行数据验证 .
我已经尝试了很多关于如何解决这个问题的选项,以及迭代的逐个单元格数据收集(使用 getTable() 或 getText()定位单元格strong> 方法)不是其中之一 - 因为在重载的网页上完成大表格需要花费大量时间。
JavaScript 注入(inject)(使用 getEval() 方法)在我的案例中不可用,因为该表驻留在具有来源(基本 URL)的 <iframe> 中这不同于主页之一。并根据same origin policy这无法执行。
伙计们,关于如何解决给定问题有什么想法吗?
最佳答案
您可以使用 JAXB 将 HTML 文本反序列化为纯 Java 对象层次结构,然后从这些对象构造一个二维数组。
另一种选择:将文本作为 XML 解析为 org.w3c.dom.Document 并使用 XPath在 Java 中查找和迭代元素。
关于java - 我如何将一个 "deserialize"的HTML表格数据转换成一个二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10028692/