2010-11-25 41 views
1

Actuellement, j'utilise HtmlUnit pour tenter de récupérer un href d'une page et j'ai quelques problèmes.Groovy htmlunit getByXPath

Le XPath est:

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

Sur la page Web, il ressemble à:

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

Dans mon code que je fais:

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

Cependant, cela est tout retour en là au lieu de juste l'url que je veux. Est-ce que quelqu'un peut expliquer ce que je dois ajouter pour obtenir le href? (elle ne se termine pas par .html)

Répondre

5

Vous sélectionnez le a. Vous voulez sélectionner le a/@href.

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 pour une réponse correcte. –

+0

Merci pour la réponse rapide. Savez-vous pourquoi ce qui suit apparaît ainsi que l'url? : DomAttr [nom = valeur href = – StartingGroovy

+1

Je ne suis pas familier avec Groovy, mais je suppose que parce que vous avez sélectionné l'attribut et obtenez la "toString()" représentation de l'objet, plutôt que sa valeur de chaîne. Essayez d'utiliser 'hrefs.getValue()' http://stackoverflow.com/questions/3667352/htmlunit-and-xpath-domnode-getbyxpath-only-works-on-htmlpage/3669846#3669846 –