• Selenium Video Tutorials

Selenium - Find All Links



Selenium Webdriver can be used to count the total number of links on a web application. Often, while performing scrapping of a webpage, we would normally need to count the links. All links (referred to as hyperlinks) have by the tagname called anchor and it has an attribute known as the href.

Identification of Links in HTML

Let us now discuss the identification of the link Home on a webpage shown in the below image. Open the Chrome browser, right click on the web page, and then click on the Inspect button. Then, the complete HTML code for the page would be available. For investigating the Home link on the page, click on the left upward arrow, available to the top of the visible HTML code as highlighted below.

Selenium Links 1

Once, we had clicked and pointed the arrow to the Home hyperlink, its HTML code would be visible, both reflecting the anchor tagname (referred to as ‘a’), and the href attribute containing the link to a page.

<a href="https://www.tutorialspoint.com/index.htm" target="_blank">Home</a>
Selenium Links 2

Count Total Links

Let us take an example of the above page, where we would count the total number of links. Here on this page, the total number of links should be 42.

Example

package org.example;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.edge.EgeDriver;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;

public class CountLinks {
   public static void main(String[] args) throws InterruptedException {

      // Initiate the Webdriver
      WebDriver driver = new EdgeDriver() ;

      // adding implicit wait of 10 secs
      driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

      // Opening the webpage where we will count the links
      driver.get( "https://www.tutorialspoint.com/selenium/practice/links.php" ) ;

      // Retrieve all links using locator By.tagName a and storing in List
      List<WebElement> totalLnks = driver.findElements(By.tagName("a"));
      System.out.println( "Total number of links:" + totalLnks.size() ) ;

      // Closing browser
      driver.quit();
   }
}

Maven dependencies added to pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
   http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   
   <groupId>org.example</groupId>
   <artifactId>SeleniumJava</artifactId>
   <version>1.0-SNAPSHOT</version>
   
   <properties>
      <maven.compiler.source>16</maven.compiler.source>
      <maven.compiler.target>16</maven.compiler.target>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>
      
   <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
   <dependencies>
      <dependency>
         <groupId>org.seleniumhq.selenium</groupId>
         <artifactId>selenium-java</artifactId>
         <version>4.11.0</version>
      </dependency>
   </dependencies>
</project>

Output

Total number of links on a page: 42

Process finished with exit code 0

In the above example, we had counted the total number of links on a web page, and received the messages in the console - Total number of links on a page: 42.

Finally, the message Process finished with exit code 0 was received, signifying successful execution of the code.

Get All Link Names

Now, let us take a look at an example of getting the names of all the hyperlinks on the web page discussed above.

Example

package org.example;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.List;
import java.util.concurrent.TimeUnit;

public class TotalLinksWithNm {
   public static void main(String[] args) throws InterruptedException {  
   
      // Initiate the Webdriver
      WebDriver driver = new ChromeDriver() ;
      
      // adding implicit wait of 10 secs
      driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
      
      // Opening the webpage where we will count the links
      driver.get( "https://www.tutorialspoint.com/selenium/practice/links.php") ;
      
      // Retrieve all links using locator By.tagName and storing in List
      List<WebElement> totalLnks  = driver.findElements(By.tagName("a"));
      System.out.println( "Total number of links: " + totalLnks.size() );
      
      // Running loop through list of web elements
      for ( int j = 0; j < totalLnks.size() ; j++) {
	  
         // get the all hyperlink texts
         System.out.println( "Link text is: " + totalLnks.get(j).getText() ) ;
      }
      
      // Closing browser
      driver.quit();
   }
}

Output

Total number of links: 42
Link text is: 
Link text is: Selenium Tutorial
Link text is: Text Box
Link text is: Check Box
Link text is: Radio Button
Link text is: Web Tables
Link text is: Buttons
Link text is: Links
Link text is: Broken Links - Images
Link text is: Upload and Download
Link text is: Dynamic Properties
Link text is: 
Link text is: 
Link text is: 
Link text is: 
Link text is: 
Link text is: 
Link text is: 
Link text is: 
Link text is: 
Link text is: 
Link text is: 
Link text is: 
Link text is: 
Link text is: 
Link text is: 
Link text is: 
Link text is: 
Link text is: 
Link text is: 
Link text is: 
Link text is: 
Link text is: 
Link text is: Home
Link text is: HomewPWPU
Link text is: Created
Link text is: No Content
Link text is: Moved
Link text is: Bad Request
Link text is: Unauthorized
Link text is: Forbidden
Link text is: Not Found

Process finished with exit code 0

In the above example, we had counted the total number of links on a web page, and received the message in the console - Total number of links: 42 and all the link texts.

At last, the message Process finished with exit code 0 was received, signifying successful execution of the code.

Conclusion

This concludes our comprehensive take on the tutorial on Selenium Webdriver Find All Links. We’ve started with describing identification of links in HTML, and examples to illustrate how to count total number of links and link names in Selenium Webdriver. This equips you with in-depth knowledge of the Selenium Webdriver - Find All Links. It is wise to keep practicing what you’ve learned and exploring others relevant to Selenium to deepen your understanding and expand your horizons.

Advertisements