Get All Links in Web Page

To get all the links (of anchor elements) in a web page using Selenium in Java, find the web elements with the tag name "a" using driver.findElements(By.tagName("a")). findElements() returns a List of web elements.

The following is a simple code snippet where we get all the link elements using Selenium.

</>
Copy
List<WebElement> links = driver.findElements(By.tagName("a"));

And then, in a loop, we can access the actual link by getting the "href" attribute value using getAttribute("href").

Example

In the following, we write Selenium Java program to visit google.com, and extract all the links in this web page.

Java Program

</>
Copy
import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class MyAppTest {
	public static void main(String[] args) {
		System.setProperty("webdriver.chrome.driver", "/usr/local/bin/chromedriver");  
		WebDriver driver = new ChromeDriver();
		driver.get("https://google.com/ncr");
		
		List<WebElement> links = driver.findElements(By.tagName("a"));
		
		for(WebElement link: links) {
			System.out.println(link.getAttribute("href"));
		}
		
		driver.quit();
	}
}

Screenshots

1. Initialize web driver and visit google.com.

</>
Copy
WebDriver driver = new ChromeDriver();
driver.get("https://google.com/ncr");
Get All Links in Web Page - Selenium

2. Find all Web Elements with the tag name "a".

</>
Copy
List<WebElement> links = driver.findElements(By.tagName("a"));

Print the link’s href attribute to console, for all the link elements.

</>
Copy
for(WebElement link: links) {
	System.out.println(link.getAttribute("href"));
}
Get All Links in Web Page - Selenium