Как получить предыдущий элемент? - PullRequest
22 голосов
/ 25 марта 2012
<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

Ответы [ 3 ]

38 голосов
/ 25 марта 2012

Вы можете использовать это xpath:

//a[.="Next."]/preceding::a[1]

Если бы я планировал это, используя X для представления текущего местоположения, это выглядело бы так:*

------------------+------+------------------
preceding-sibling | self | following-sibling
------------------|------|------------------
last() ...  2   1 |  X   | 1   2  ... last()
------------------+------+------------------
3 голосов
/ 12 июля 2017
//a[contains(text(), 'Next.')]/preceding::a[contains(text(), '171')]

Объяснение xpath: Использование метода text вместе с тегом <a>, а затем перейти к ключевому слову preceding, чтобы найти элемент 171

1 голос
/ 11 июля 2017

Я знаю, что это старый, и если вы не знали, содержащий элемент, предшествующий «Имя».элемент это не будет решением для вас.НО, если вы хотите найти именно этот элемент и на странице есть несколько «171» элементов.Способ отличить его от остальных можно использовать следующим образом.

//p[b[contains(., 'Next.')]]//a[contains(., '171')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...