java - 我如何将一个 "deserialize"的HTML表格数据转换成一个二维数组?

标签 java testing selenium junit automated-tests

我需要使用 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() 方法)不是其中之一 - 因为在重载的网页上完成大表格需要花费大量时间。

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/

相关文章:

ios - 无法在装有 iOS 5.1.1 的设备上测试 App?

testing - Gradle + Robolectric + Espresso : can't run separately

java - 为什么这个网站不能定位元素?

java - 如何在浏览器中验证 pdf 查看器

java - 驱动程序无法通过 Jenkins 上运行的 BrowserStack 进行初始化

java - 在动态图中找到最短路径

Java导入静态错误

java - 集合排序泛型类型java

java - 日期和时间未更新

c++ - 如何测试用户的代码?