2

私はこのようなHTML構造を持っています:

<table>
    <tr>
        <td>some value 1</td>
        <td>unique value 1</td>
        <td>needed value 1</td>
        <td>some value 1</td>
    </tr>


    <tr>
        <td>some value 2</td>
        <td>unique value 2</td>
        <td>needed value 2</td>
        <td>some value 2</td>
    </tr>

    <tr>
        <td>some value 3</td>
        <td>unique value 3</td>
        <td>needed value 3</td>
        <td>some value 3</td>
    </tr>

</table>

私はSeleniumを使用しており、XPathを使用してこの一意の値を検索することにより、一意の値の横にあるtdを指す必要があります。

私は解決策を見つけました:必要な一意の値を持つtrを見つけてから、tdの前の兄弟を数え、position()= count(preceding-sibling)+2を使用します

//tr[./td[text()='Unique value 2']]/td[position()=count(//tr[./td[text()='Unique value 2']]/td[text()='Unique value 2']//preceding-sibling::td)+2]

もっと簡単な方法はありますか?問題は、テーブルの構造が時間とともに変化する可能性があることですが、必要な値は常に一意の隣になります

4

1 に答える 1

2

を使用する代わりに、 :を使用preceding-siblingします。following-sibling

//td[text()="unique value 2"]/following-sibling::td[1]
于 2013-02-21T11:49:42.727 に答える