我正试图从像这样的父类中获取所有href链接:
<div class="parentClass">
<article class="className">
<a href="link1">
</a>
</article>
<article class="className">
<a href="link2">
</a>
</article>
</div>
找到href元素的正确方法是什么?
答案 0 :(得分:3)
在xpath下使用
//div[@class='parentClass']//*[@href]
使用以下代码:
List<WebElement> list=driver.findElements(By.xpath("//div[@class='parentClass']//*[@href]"));
for(WebElement e : list){
String link = e.getAttribute("href");
System.out.println(e.getTagName() + "=" + link);
}
答案 1 :(得分:1)
如果在xpath下使用,则将从父目录中找到所有href元素
//div[@class="parentClass"]//article[*]//a[*]
答案 2 :(得分:-1)
最简单的方法是使用CSS选择器div.parentClass a
。我建议您还添加一个等待时间,因为页面加载可能需要几秒钟的时间,具体取决于页面包含的数据量。在那之后,您只需要找到所有匹配的元素,遍历每个元素并获得href
属性,然后打印它们(或您想对它们进行的任何其他处理)。这些建议的代码如下。
List<WebElement> links = new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector("div.parentClass a")));
for (WebElement webElement : links)
{
System.out.println(webElement.getAttribute("href"));
}