Вы можете использовать поток и filter
для фильтрации видимых ссылок, используя isDisplayed
:
driver.get("https://www.duke-energy.com/my-account/sign-in");
List<WebElement> links = new WebDriverWait(driver, 5).until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.tagName("a")));
System.out.println("The total number of links on the page are :" + links.size());
List<WebElement> vlinks = links.stream().filter(WebElement::isDisplayed).collect(Collectors.toList());
System.out.println("The total number of visible links on the page are :" + vlinks.size());
for (WebElement link : vlinks) {
String url = link.getText();
System.out.println(url);
}
Видимые ссылки и текст не пустые:
links.stream().filter(e -> e.isDisplayed() && !e.getText().isEmpty())
.collect(Collectors.toList())
.forEach(e -> System.out.println(e.getText()));