如何编写具有相同类但不同索引的xpath?

时间:2016-05-16 18:14:03

标签: xpath

我希望获得同一级别的SECOND。里面有链接。

<ul>
    <li class="arrow">
        <a href="somelinks.com"> </a>
    </li>
    <li></li>
    <li></li>
    <li class="arrow">
        <a href="someotherlinkstopage.com"> </a>
    </li>
    <li></li>
</ul>

我想得到“someotherlinkstopage.com”。这是第二个李。我应该尝试倒数第二个?还是上课?

我试过了:

//(li[contains(@class,'arrow'])[2]/a/@href

//li[contains(@class, 'arrow')][2]/a/@href

//li[@class='arrow'][2]/a/@href

2 个答案:

答案 0 :(得分:1)

你非常接近。以下XPath,

Header

将根据要求选择(//li[@class = 'arrow'])[2]/a/@href

在这种情况下,您也可以使用"someotherlinkstopage.com",但请注意与contains()arrows等的匹配。请参阅How can I select an element with multiple classes with Xpath?

答案 1 :(得分:0)

我已经使用

解决了这个问题
(//li[@class='arrow'])[last()]/a/@href

我不知道为什么[2]不能使用但是last()可以..

但我知道我使用last()因为只有2个名为arrow的类,无论是第一个还是最后一个。