4

我需要使用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>

String[][]我想使用 Selenium将这个表(收集它的数据)“反序列化”成一个二维数组( )。我想这样做的原因是我有另一个 HTML 表(在另一个网页上),其中包含应该存储在其中的相同数据 - 我需要在这两个表之间执行数据验证。

我已经尝试了很多关于如何解决这个问题的选项,并且逐个单元格的迭代数据收集(使用getTable()getText()方法定位单元格)不是其中之一 - 因为它需要大量时间在超载的网页上完成一个大表。

在我的情况下, JavaScript 注入(使用getEval()方法)不可用,因为该表驻留在<iframe>中,其来源(基本 URL)与主页面不同。并且根据同源策略,这是无法执行的。

伙计们,关于如何解决给定问题的任何想法?

4

1 回答 1

1

您可以使用 JAXB 将 HTML 文本反序列化为纯 java 对象层次结构,然后从这些对象构造一个二维数组。

Another option: parse the text as XML into a org.w3c.dom.Document and use XPath in Java to find and iterate over the elements.

于 2012-04-05T12:41:53.250 回答