2010-11-25 20 views
1

Ich benutze derzeit HtmlUnit zu versuchen, eine href aus einer Seite zu greifen und habe einige Probleme.Groovy htmlunit getByXPath

Die XPath ist:

/html/body/div[2]/div/div/table/tbody/tr/td[2]/div/div[5]/div/div[2]/span/a  

Auf der Webseite sieht es aus wie:

<a class="t" title="This Brush" href=http://domain.com/this/that">Brush Set</a> 

In meinem Code ich tue:

hrefs = page.getByXPath("//html/body/div[2]/div/div/table/tbody/tr/td[2]/div/div[5]/div/div[2]/span/a[@class='t']") 

Dies ist jedoch die Rückkehr alles in dort statt nur die URL, die ich will.

Kann jemand erklären, was ich hinzufügen muss, um die href zu bekommen? (es endet auch nicht mit .html)

Antwort

5

Sie wählen die a. Sie möchten die a/@href auswählen.

hrefs = page.getByXPath("//html/body/div[2]/div/div/table/tbody/tr/td[2]/div/div[5]/div/div[2]/span/a[@class='t']/@href") 
+0

+1 für eine korrekte Antwort. –

+0

Vielen Dank für die schnelle Antwort. Weißt du, warum das Folgende ebenso wie die URL erscheint? : DomAttr [Name = href Wert = – StartingGroovy

+1

Ich bin nicht vertraut mit Groovy, aber meine Vermutung ist, dass, weil Sie das Attribut ausgewählt haben und erhalten die "toString()" Darstellung des Objekts, anstatt es String Wert ist. Versuchen Sie es mit 'hrefs.getValue()' http://stackoverflow.com/questions/3667352/htmlunit-and-xpath-domnode-getbyxpath-only-works-on-htmlpage/3669846#3669846 –