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.
- Log in to post comments