4

Seleniumを使用して 2 つのテーブルのデータ検証を実行する必要があります。

データで満たされた適切にマークアップされた 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 を使用して、このテーブルを 2 次元配列 ( ) に "デシリアライズ" (データを収集) したいと考えています。私がそうしたい理由は、同じデータが格納されていると思われる別の HTML テーブル (他の Web ページ上) があり、これら 2 つのテーブル間でデータ検証を実行する必要があるためです。

この問題を解決する方法について多くのオプションを試しましたが、反復的なセルごとのデータ収集 ( getTable()またはgetText()メソッドを使用してセルを検索する) はそれらの 1 つではありません。膨大な時間がかかるためです。オーバーロードされた Web ページで大きなテーブルを完成させる。

私の場合、 JavaScript インジェクション ( getEval()メソッドを使用) は使用できません。これは、メイン ページのものとは異なるオリジン (ベース URL) を持つ<iframe>にテーブルが存在するためです。そして、同じオリジンポリシーによれば、これは実行できません。

みんな、与えられた問題を解決する方法について何か考えはありますか?

4

1 に答える 1

1

JAXB を使用して、HTML テキストを単純な Java オブジェクト階層に逆シリアル化し、それらのオブジェクトから 2D 配列を構築できます。

別のオプション: テキストを XML として解析して org.w3c.dom.Document にし、Java でXPathを使用して要素を見つけて反復処理します。

于 2012-04-05T12:41:53.250 に答える