4

SeleniumIDEを使用してアプリケーションをテストしています。行の順序が不安定なテーブルがあります。つまり、検証する必要のある要素は、テストの実行ごとに異なる行にあります。

行を見つけるために最初の列にあることがわかっているテキストを使用したいと思います。次に、同じ行の他の列を確認します。

テストは次のようになります。

store        || //form/table                    || tableXpath
store        || 3                               || initialsRow
verifyTable  || ${tableXpath}.${initialsRow}.0  || Initials
verifyTable  || ${tableXpath}.${initialsRow}.1  || MJ
verifyTable  || ${tableXpath}.${initialsRow}.2  || MH

「initialsRow」値をハードコーディングする代わりに、行インデックスを動的に見つけることはできませんか?

4

2 に答える 2

5

私が見つけた解決策は、SeleniumのstoreElementIndexコマンドを使用することでした。親を基準にしたHTML要素のインデックスを取得します。

http://release.seleniumhq.org/selenium-core/1.0.1/reference.htmlを参照してください

テストを次のように変更しました。

store             || //form/table                                 || tableXpath
storeElementIndex || ${tableXpath}//tr/td[text() = "Initials"]/.. || initialsRow
verifyTable       || ${tableXpath}.${initialsRow}.1               || MJ
verifyTable       || ${tableXpath}.${initialsRow}.2               || MH

XPathクエリ//form/table//tr/td[text() = "Initials"]/..は、テキスト「Initials」を含む「td」要素の上にある「tr」要素を検索します。Seleniumは、親要素が何であれ、この'tr'要素のインデックスを格納します。

于 2012-06-15T13:20:29.120 に答える
2

さて、今私は見つけました、セレンは計算することができます。残念ながら、暗黙的にのようではありません${tableXpath}.${initialsRow + 1}.1。そこで、コマンドを追加しました。

storeEval || ${ORBInitialPort} + 1 || ORBInitialPortRow

インデックスORBInitialPortRowの代わりに使用されます。ORBInitialPort

于 2015-06-19T09:44:31.620 に答える