Java 如何从父类获取href?

Java 如何从父类获取href?,java,selenium-webdriver,Java,Selenium Webdriver,我正在尝试从父类获取所有href链接,如下所示: <div class="parentClass"> <article class="className"> <a href="link1"> </a> </article> <article class="className"> <a href="link2"> </a> <

我正在尝试从父类获取所有href链接,如下所示:

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

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

使用下面的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);
   }
List List=driver.findElements(By.xpath(“//div[@class='parentClass']]/*[@href]”);
for(WebElement e:list){
字符串链接=e.getAttribute(“href”);
System.out.println(e.getTagName()+“=”+链接);
}

最简单的方法是使用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"));
}
List links=new WebDriverWait(driver,10).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector(“div.parentClass a”));
对于(WebElement WebElement:链接)
{
System.out.println(webElement.getAttribute(“href”);
}

如果使用下面的xpath,则将从父级查找所有href元素

//div[@class="parentClass"]//article[*]//a[*] 

如果元素还有一个类名,则可能需要执行
[contains(@class,'parentClass')]
。请参阅:SO的期望是,用户提出问题时不仅要进行研究以回答自己的问题,还要共享研究、代码尝试和结果。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另见: