2016-05-16 1 views
0

Ich möchte die zweite mit der gleichen Klasse bekommen. Innen gibt es die Verbindung.Wie schreibe ich xpath mit derselben Klasse, aber einem anderen Index?

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

ich möchte die "someotherlinkstopage.com" bekommen. Es ist das vorletzte li. soll ich vorletztes li versuchen? oder mit der Klasse gehen?

Ich habe versucht:

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

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

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

Antwort

1

Sie ganz in der Nähe waren. Der folgende XPath,

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

wählt wie gewünscht "someotherlinkstopage.com".

Sie können auch in diesem Fall benutzen, aber von den Begegnungen gegen arrows, sparrow usw. Siehe How can I select an element with multiple classes with Xpath?

+0

ich versuchte .. kann immer noch nicht auf die nächste Seite gehen .. nur kratzen die Titelseite .. – Michimcchicken

+0

Ihre zweite und dritte Versuche, sowie die Lösung, die ich zur Verfügung gestellt, wird an der Probe HTML arbeiten, die Sie gezeigt haben . Wenn Sie mit meinen oder den zweiten beiden Lösungen keinen Erfolg haben, haben Sie keinen repräsentativen HTML-Auszug bereitgestellt. – kjhughes

+0

ich überprüfte html .. enthält nur zwei "pfeil" .. ich weiß wirklich nicht warum ... und davor habe ich nicht erkannt, es hat 2 "pfeil", ich code // li [contains (@class, 'pfeil')]/a/@ href, ging es auf die zweite Seite, dann hörte es auf .. aber es kratzte erste und zweite Seite .. – Michimcchicken

0

i dies

mit aufgelöst haben
(//li[@class='arrow'])[last()]/a/@href 

ich habe keine Ahnung, warum [2 ] kann nicht verwendet werden, aber last() kann ..

aber ich weiß, ich benutze last(), weil es nur 2 Klasse namens Pfeil .. entweder zuerst oder zuletzt.

+0

Das Erstellen eines richtigen ** [mcve] ** ist schwer, aber spart auf lange Sicht sowohl Ihre Zeit als auch unsere. – kjhughes

+0

ja ich verstehe was du meinst..danke für deine hilfe .. – Michimcchicken

Verwandte Themen