Selenium:- Find Broken Links


FindBrokenLink.java

import java.util.ArrayList;
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;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

import com.utility.GetReponseCode;

public class FindBrokenLink {

 WebDriver driver;

 // It will open the browser & Application before Test
 @BeforeTest
 public void openBrowser() {
  System.setProperty("webdriver.chrome.driver", "D://Drivers//chromedriver.exe");
  driver = new ChromeDriver();
  
  //To maximize the Window
  driver.manage().window().maximize();
  //To Open the Application
  driver.get("http://www.oyepages.com");
 }
 
 @AfterTest
 public void tearDown() {
  if (driver != null)
   driver.close();
 }
 
 @Test
  public void getBrokenLinks() {
  
   // Find all Elements on the page with 'a' tag
   List allLinks = driver.findElements(By.tagName("a"));
   
   System.out.println("Total Number of Links : " +allLinks.size());
   
   //Iterate over all available Links on webpage
   for (WebElement link : allLinks) {
   String linkURL = link.getAttribute("href");
   
   //Call VerifyURL form GetResponse Code Class
   GetReponseCode.verifyUrl(linkURL);
  }
   
   System.out.println("Total Number of Links : " +allLinks.size());
   GetReponseCode.getInvalidLinkCount(); 
 }
}

GetReponseCode.java

import java.net.URL;

import javax.net.ssl.HttpsURLConnection;

public class GetReponseCode {

 static int inValidLink;

 public static void verifyUrl(String linkURL) {

  try {
   URL url = new URL(linkURL);
   HttpsURLConnection urlConnect = (HttpsURLConnection) url.openConnection();

   // Set Connection TimeOut
   urlConnect.setConnectTimeout(5000);

   // Open Communication link to resource URL
   urlConnect.connect();

   // To verify the Response Code
   if (urlConnect.getResponseCode() == 200) {
    System.out.println(
      linkURL + " : " + urlConnect.getResponseCode() + " : " + urlConnect.getResponseMessage());
   } else if (urlConnect.getResponseCode() == urlConnect.HTTP_NOT_FOUND) {
    System.out
      .println(linkURL + " : " + urlConnect.getResponseMessage() + " : " + urlConnect.HTTP_NOT_FOUND);
    inValidLink++;
   }

  } catch (Exception e) {
  }
 }

 public static void getInvalidLinkCount() {
  System.out.println("Total Invalid Links : " + inValidLink);
 }

}