次のように、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>
ます。