我定位的HTML网页的div
如下所示:
<div class="white-row1">
<div class="results">
<div class="profile">
<a href="hrefThatIWant.com" class>
<img src = "http://imgsource.jpg" border="0" width="150" height="150 alt>
</a>
</div>
</div>
</div>
<div class="white-row2">
// same content as the div above
</div>
我想废弃收集列表中每个div的href。
这是我目前的代码:
List<HtmlAnchor> profileDivLinks = (List)htmlPage.getByXPath("//div[@class='profile']//@href");
for(HtmlAnchor link:profileDivLinks)
{
System.out.println(link.getHrefAttribute());
}
这是我收到的错误(在for语句的第一行出现):
Exception in thread "main" java.lang.ClassCastException: com.gargoylesoftware.htmlunit.html.DomAttr cannot be cast to com.gargoylesoftware.htmlunit.html.HtmlAnchor
您认为这个问题是什么?
答案 0 :(得分:1)
问题是你获得了一个属性,然后你将该属性转换为锚点。我想对代码进行最小更改的解决方案只是修改XPath以返回锚点:
htmlPage.getByXPath("//div[@class='profile']//a");
答案 1 :(得分:0)
试
//div[@class='profile']//data(@href)