</>

Technology

Selenium

Difficulty

Beginner

Interview Question

How to count the total number of hyperlinks in a page using Selenium?

Use driver.findElements(By.tagName("a")) to get all anchor elements, then call .size() on the returned list to count total hyperlinks.

Answer

Counting Total Number of Hyperlinks in a Page

Use findElements() with By.tagName("a") to get all anchor elements, then use .size() for the count.

Basic count:

Java
List<WebElement> allLinks = driver.findElements(By.tagName("a"));
System.out.println("Total number of hyperlinks: " + allLinks.size());

Full test example:

Java
@Test
public void countHyperlinks() {
    driver.get("https://example.com");

    List<WebElement> allLinks = driver.findElements(By.tagName("a"));
    int totalLinks = allLinks.size();

    System.out.println("Total hyperlinks on page: " + totalLinks);
    Assert.assertTrue(totalLinks > 0, "Page should have at least one link");
}

Count links with valid href:

Java
@Test
public void countValidLinks() {
    driver.get("https://example.com");

    List<WebElement> allLinks = driver.findElements(By.tagName("a"));
    int validLinkCount = 0;
    int emptyHrefCount = 0;

    for (WebElement link : allLinks) {
        String href = link.getAttribute("href");
        if (href != null && !href.isEmpty() && !href.equals("#")) {
            validLinkCount++;
        } else {
            emptyHrefCount++;
        }
    }

    System.out.println("Valid links: " + validLinkCount);
    System.out.println("Empty/anchor links: " + emptyHrefCount);
    System.out.println("Total: " + allLinks.size());
}

Print all link URLs:

Java
List<WebElement> links = driver.findElements(By.tagName("a"));
System.out.println("Total links: " + links.size());

for (int i = 0; i < links.size(); i++) {
    System.out.println((i+1) + ". " + links.get(i).getAttribute("href")
        + " — Text: " + links.get(i).getText());
}

Count links by category:

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

long externalLinks = allLinks.stream()
    .filter(a -> {
        String href = a.getAttribute("href");
        return href != null && href.startsWith("http") && !href.contains("example.com");
    })
    .count();

System.out.println("External links: " + externalLinks);
System.out.println("Total links: " + allLinks.size());

Key code:

Java
List<WebElement> allLinks = driver.findElements(By.tagName("a"));
System.out.println(allLinks.size());

Follow AutomateQA

Related Topics