3

次のマークアップが与えられた場合

<div>
    <a>Username1</a>
</div>
<div>
    <button>Unblock</button>
</div>
<div>
    <a>Username2</a>
</div>
<div>
    <button>Unblock</button>
</div>
<div>
    <a>Username3</a>
</div>
<div>
    <button>Unblock</button>
</div>

aテキストUsername2を持つ要素のいとこであるボタン要素を選択するにはどうすればよいですか?

aで要素を選択できる//a[contains(., 'Username2')]ので、正しいボタンが選択されると思ったのです//a[contains(., 'Username2')]/following-sibling::/div/buttonが、うまくいきません。有効な XPATH でさえないと思います。

4

1 に答える 1

8

あなたは近かった:

// a [contains(。、'Username2')] /../ follow-sibling :: div [1] / button

いとこに移動するには、最初に親(..)に移動し、次にその兄弟に移動する必要があります。

following-sibling::軸は、最初の兄弟だけでなく、後続のすべての兄弟を選択することに注意してください。これは[1]、最初のものが必要な場合に使用する必要があることを意味します。

これも機能します:

//a[。='Username2'] /../ follow-sibling :: div [1] / button

だからこれは:

// div [a ='Username2'] / follow-sibling :: div [1] / button
于 2012-11-01T08:03:51.797 に答える