Groovy htmlunit getByXPath

Posted

技术标签:

【中文标题】Groovy htmlunit getByXPath【英文标题】: 【发布时间】:2011-05-15 10:38:07 【问题描述】:

我目前正在使用 htmlUnit 试图从页面中获取一个 href 并且遇到了一些问题。

XPath 是:

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

在网页上是这样的:

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

在我正在做的代码中:

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

但是,这会返回其中的所有内容,而不仅仅是我想要的 url。

有人可以解释我必须添加什么才能获得 href 吗? (也不以 .html 结尾)

【问题讨论】:

【参考方案1】:

您正在选择a。您要选择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")

【讨论】:

感谢您的及时回复。您知道为什么会出现以下内容以及网址吗? : DomAttr[name=href value= 我不熟悉 Groovy,但我的猜测是因为您选择了属性并且正在获取对象的“toString()”表示,而不是它的字符串值。尝试使用hrefs.getValue()***.com/questions/3667352/… 你是正确的 Mads Hansen。非常感激。作为可能遇到类似问题的任何人的旁注,我不得不使用 page.getFirstByXPath 而不是 page.getByXPath Mads Hansen,如果你有时间,可以看看:***.com/questions/4320179/…

以上是关于Groovy htmlunit getByXPath的主要内容,如果未能解决你的问题,请参考以下文章

硒与 HtmlUnit? [关闭]

htmlunit 和 document.addEventListener

在 HtmlUnit 中设置代理

利用htmlunit登陆带验证码图片的网站

零基础快速入门mini爬虫框架HtmlUnit

如何将 SOCKS 与 HtmlUnit 一起使用?