Java 如何从父类获取href?
我正在尝试从父类获取所有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> <
<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的期望是,用户提出问题时不仅要进行研究以回答自己的问题,还要共享研究、代码尝试和结果。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另见: