Выберите элемент на основе значения двоюродного брата - PullRequest
0 голосов
/ 10 октября 2018

Допустим, у меня есть этот HTML (игнорировать имена тегов):

<div>
    <card>
        <h2>1</h2>
    </card>
    <footer>
        <p>text 1</p>
    </footer>
</div>

<div>
     <card>
        <h2>2</h2>
    </card>
    <footer>
        <p>text 2</p>
    </footer>
</div>

<div>
    <card>
        <h2>3</h2>
    </card>
    <footer>
       <p>text 2</p>
    </footer>
</div>

, и я хочу выбрать тег p, значение h2 которого равно 2 (я выберу p с текстом 2)

если я использую это выражение //h2[text()="2"]/../following::footer/p Я получу 2 тега p.

Как выбрать только тег p с двоюродным братом h2 значение 2?

РЕДАКТИРОВАТЬ: Робби Аверилл ответил первым, но вы должны проверить другие ответы, они тоже очень хороши.

Ответы [ 3 ]

0 голосов
/ 10 октября 2018

Попробуйте использовать ниже XPath для выбора необходимого элемента:

//card[h2="2"]/following-sibling::footer/p
0 голосов
/ 10 октября 2018

Этот XPath,

//div[card/h2="2"]/footer/p

выберет footer/p двоюродных братьев card/h2 элементов со строковыми значениями 2.

0 голосов
/ 10 октября 2018

Вы можете перейти от h2 к div, содержащему нужный элемент, а затем нацелить footer/p элементы оттуда:

//h2[text()="2"]/../../footer/p
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...