如何获得前面的元素?
问题描述:
<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
答
您可以使用此xpath
:
//a[.="Next."]/preceding::a[1]
如果我是来图出来,使用X
表示当前位置,它应该是这样的:
------------------+------+------------------
preceding-sibling | self | following-sibling
------------------|------|------------------
last() ... 2 1 | X | 1 2 ... last()
------------------+------+------------------
答
我知道这是旧的,如果你不知道“名称”前的包含元素。元素这不会是你的解决方案。但是,如果您想要查找完全相同的元素,并且整个页面上有几个“171”元素。 将其与其他区分开来的方法可以使用以下方法。
//p[b[contains(., 'Next.')]]//a[contains(., '171')]
答
//a[contains(text(), 'Next.')]/preceding::a[contains(text(), '171')]
说明的XPath:使用text
法<a>
标签一起,然后用preceding
关键字前进定位元素171
此图是非常有用!索引规则让我很困惑! – Skywalker326 2016-08-11 05:32:39