Skip to main content

Broken Link Checker using Java & Selenium

We often come across the requirement to validate the links (i.e. Checking Broken links) in the web pages. Performing this task manually is tedious as there might be high number of links in your web page. Generally to validated it we depend on the third party websites where there might be confidentiality issues. Below is the code snippet which can be used locally & quickly to check the links without compromising on confidentially.

 import com.jayway.restassured.RestAssured;  
 import com.jayway.restassured.config.RedirectConfig;  
 import com.jayway.restassured.config.SSLConfig;  
 import org.openqa.selenium.By;  
 import org.openqa.selenium.WebDriver;  
 import org.openqa.selenium.WebElement;  
 import org.openqa.selenium.firefox.FirefoxDriver;  
 import org.testng.annotations.Test;  
 import java.util.List;  

 public class LinkChecker {  
   WebDriver driver = null;  
   public void validateLinksInPage() {  
     List<WebElement> anchorTagsList = driver.findElements(By.tagName("a"));  
     int counter = 0;  
     int responseStatusCode;  
     RedirectConfig redirectConfig = new RedirectConfig(true, true, false, 5);  
     RestAssured.config.sslConfig(new SSLConfig().relaxedHTTPSValidation().and().allowAllHostnames());  
     for (WebElement anchorTagElement : anchorTagsList) {  
       if (anchorTagElement != null) {  
         String url = anchorTagElement.getAttribute("href");  
         if (url != null && !url.contains("javascript") && !url.contains("modal") && !url.contains("mailto:")) {  
           System.out.println("Verifying: " + url);  
           responseStatusCode = -1;  
           try {  
             responseStatusCode = RestAssured.get(url).getStatusCode();  
             System.out.println("Status code: " + responseStatusCode);  
           } catch (Exception e) {  
             System.out.println("Validation failed for URL: " + url + " Error message is: " + e.getMessage());  
         } else {  
           System.out.println("Out of criteria URL " + url);  
     System.out.println("Total validated links: " + counter);  
   public void checkLinksInPage() {  
     driver = new FirefoxDriver();  

Popular posts from this blog

Mobile Web Browser Automation using Appium

Appium supports the automation of mobile web applications. Web apps are not really the applications but they are really websites which changes its layout as per the mobile device display and feels more like mobile native application. Being a website they run on a browser which can be Android, Safari, Chrome, Opera Mini or any other mobile browser. 
Make sure Appium has been installed along with all the dependencies. If not follow the instruction mentioned here.

Script for mobile web app automation;;importorg.openqa.selenium.By;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.WebElement;importorg.openqa.selenium.remote.DesiredCapabilities;importorg.openqa.selenium.remote.RemoteWebDriver;;;importorg.testng.Assert;importorg.testng.annotations.Test;publicclassAppiumMobileAppTest{ WebDriver driver;@TestpublicvoidandroidB…

Appium setup on WIndows

Appium is an open source test automation framework for use with native, hybrid and mobile web apps.
It drives iOS and Android apps using the WebDriver protocol. Below are the step by step instructions to run Appium on windows machine for Android automation.

1. InstallJDK (7+) on your machine and set JAVA_HOME in environment variables.
Setting JAVA_HOME:   Right click My Computer and select Properties.
  a) On the Advanced tab, select Environment Variables, and then add JAVA_HOME pointing to    where the JDK is located, for example, C:\Program Files\Java\jdk1.7.0_79
  b) Updated the Path variable(Be careful with this as it might corrupt your OS)   Edit Path variable and append with ; followed by %JAVA_HOME%\bin
2. Download android sdk from here ->SDK Tools Only -> android-sdk_<version>   Extract it on a location and set up ANDROID_HOME in environment variables
Setting ANDROID_HOME:   Right click My Computer and select Properties.
  a) On the Advanced tab, select En…