Selenium Intercept Response

Profile picture for user arilio666

This article will show how we can intercept responses using Selenium 4 Java.

After following the same steps of the request method using the CDP feature.
We need to change a few steps here and there.

1. Network and response

We will enable the network and add a listener to the response received.

 devTool.send(Network.enable(Optional.empty(), Optional.empty(), Optional.empty()));
       devTool.addListener(Network.responseReceived(), requestSent -> {
             System.out.println("URL => " + requestSent.getResponse().getUrl());
             System.out.println("Status => " + requestSent.getResponse().getStatus());
             System.out.println("Headers => " + requestSent.getResponse().getHeaders().toString());
             System.out.println("------------------------------------------------------");
       });
   

Here we have enabled and asked for the response of URL, status, and headers of the programsbuzz site using the getResponse().

package com.pb.test.mytesting;
import java.time.Duration;
import java.util.HashMap;
import java.util.Optional;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.devtools.HasDevTools;
import org.openqa.selenium.devtools.v113.network.Network;
import org.openqa.selenium.devtools.v113.network.model.Request;
public class SelReq {
    
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver","C:\\Users\\arili\\eclipse-workspace\\mytesting\\target\\chromedriver.exe");
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--remote-allow-origins=*");

        WebDriver driver = new ChromeDriver(options);

        driver.manage().window().maximize();    
        driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(30));
        
        org.openqa.selenium.devtools.DevTools devTool = ((HasDevTools) driver).getDevTools();

       devTool.createSession();
       
       devTool.send(Network.enable(Optional.empty(), Optional.empty(), Optional.empty()));
       devTool.addListener(Network.responseReceived(), requestSent -> {
             System.out.println("URL => " + requestSent.getResponse().getUrl());
             System.out.println("Status => " + requestSent.getResponse().getStatus());
             System.out.println("Headers => " + requestSent.getResponse().getHeaders().toString());
             System.out.println("------------------------------------------------------");
       });
       driver.get("https://www.programsbuzz.com");
    }
}

We can see the response code and URLs we asked for printed.