问题描述
我想在除主页之外的其他网站上获取所有带有其响应代码的链接。我尝试将findElements方法与锚标记一起使用,但这仅在首页上提供了链接。现在,假设我在该主页中也有一些菜单,并且我也想获得与该页面相关联的链接。有可能吗?
解决方法
使用此功能,您可以从页面收集链接。
List<WebElement> aTags = driver.findElements(By.tagName("a");
List<String> links = new ArrayList<String>();
for (WebElement aTag: aTags) {
links.add(aTag.getAttribute("href");
}
对于所有链接,它们都不是文件链接,您也可以循环播放。 另一件事是检查响应代码,请参见https://www.baeldung.com/java-http-request。
,要获取网页中存在的所有活动链接,请尝试以下代码。如有可能,请分享您的测试网址和代码,然后我可以从自己的角度进行复制。
List<WebElement> linksList = driver.findElements(By.tagName("img"));
linksList.addAll(driver.findElements(By.tagName("a")));
System.out.println("The full size of Links and Images are: "+linksList.size());
List<WebElement> activeLinks = new ArrayList<WebElement>();
for(int i=0; i<linksList.size(); i++) {
Thread.sleep(200);
System.out.println(linksList.get(i).getAttribute("href"));
if(linksList.get(i).getAttribute("href") != null) {
activeLinks.add(linksList.get(i));
}
}