Как получить предыдущий элемент?
<p class="small" style="margin: 16px 4px 8px;">
<b>
<a class="menu-root" href="#pg-jump">Pages</a>
:
<b>1</b>
,
<a class="pg" href="viewforum.php?f=941&start=50">2</a>
,
<a class="pg" href="viewforum.php?f=941&start=100">3</a>
...
<a class="pg" href="viewforum.php?f=941&start=8400">169</a>
,
<a class="pg" href="viewforum.php?f=941&start=8450">170</a>
,
<a class="pg" href="viewforum.php?f=941&start=8500">171</a>
<a class="pg" href="viewforum.php?f=941&start=50">Next.</a>
</b>
</p>
Я хочу уловить элемент a
, содержащий 171. Таким образом, в основном предыдущий элемент из Next.
//a[.='Next.']//Not sure how to use preceding here
Ответы
Ответ 1
Вы можете использовать этот xpath
:
//a[.="Next."]/preceding::a[1]
Если бы я был на диаграмме, используя X
для представления текущего местоположения, он выглядел бы так:
------------------+------+------------------
preceding-sibling | self | following-sibling
------------------|------|------------------
last() ... 2 1 | X | 1 2 ... last()
------------------+------+------------------
Ответ 2
//a[contains(text(), 'Next.')]/preceding::a[contains(text(), '171')]
Объяснение xpath: Используя метод text
вместе с тегом <a>
, а затем двигайтесь вперед с ключевым словом preceding
, чтобы найти элемент 171
Ответ 3
Я знаю, что это устарело, и если вы не знаете содержащийся элемент, предшествующий "Name". элемент это не будет решением для вас. НО, если бы вы хотели найти именно этот элемент и на странице было несколько элементов "171".
Чтобы отличить его от остальных, вы можете использовать следующее.
//p[b[contains(., 'Next.')]]//a[contains(., '171')]