簡體   English   中英

如何使用硒排除打印網站中的所有隱藏鏈接

[英]How to exclude printing all the hidden links from a website using selenium

以下代碼打印網站上的所有鏈接,其中還包括一些隱藏鏈接。 這些隱藏的鏈接在控制台上顯示為空白。 我如何編寫我的代碼,使其只打印網站上的可見鏈接,而不打印空白形式的隱藏鏈接。

driver.get("https://www.duke-energy.com/my-account/sign-in");

List<WebElement> link = driver.findElements(By.tagName("a"));

System.out.println("The total number of links on the page are :"+link.size());

for(int i=0;i<link.size();i++)
{
    String url=link.get(i).getText();
    System.out.println(url);
}

您可以使用流和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()));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM