6

次のように、xpath で :position() を使用して、単純な HTML ブロックの n 番目の要素を取得できます。

<ul>
<li>first</li>
<li>second</li>
<li>third</li>
</ul>

によって要素をクエリできます//li[position()=2]が、これはこの状況では機能しません。

<ul>
<b><li>first</li></b>
<b><li>second</li></b>
<b><li>third</li></b>
</ul>

を使用する必要があります//b[position()=2]/li

問題は、セレン テスト用に n 番目の要素の XPath ルールを作成したいということです。複数の要素が追加のタグで装飾されている場合でも機能する XPath が必要です。

テスト目的でバックエンド ロジックを変更して、data-* 属性などの追加のテスト ハンドルを html で提供できることはわかっていますが、テスト対象のアプリのコードを変更できないとします。

だから、私は次のような XPath クエリを検索して<li>ます。

4

1 に答える 1

14

[position()=3]に短縮できることに注意してください[3]。あなたの質問に対する答えは

(//li)[3]

位置は、括弧によって返されるノードリストに関連しています。

于 2013-06-07T10:29:57.047 に答える