Подтвердить что ты не робот

Как получить предыдущий элемент?

<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
4b9b3361

Ответ 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')]