如何从父类获得href?

时间:2019-10-25 16:53:56

标签: java selenium-webdriver

我正试图从像这样的父类中获取所有href链接:

<div class="parentClass">
   <article class="className">
      <a href="link1">
      </a>
   </article>
   <article class="className">
      <a href="link2">
      </a>
   </article>
</div>

找到href元素的正确方法是什么?

3 个答案:

答案 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"));
}