How to get the response body from network tab using Selenium 4 (devTools)

Viewed 4748

I am using devTools in selenium 4 to retrieve the responses from the network tab.

While I am getting the url, response code, headers etc,

I could not find a way to retrieve the actual response body. (My intention is to validate the key value pairs in the response.)

Any help is much appreciated.

Below is a snippet from my code.

   devTools.addListener(Network.responseReceived(),
            response -> {
                Response res= response.getResponse();
                System.out.println("URL - " + res.getUrl());
                System.out.println("Status - " + res.getStatus());
                System.out.println("Headers - " + res.getHeaders());
                System.out.println("Header text - " + res.getHeadersText());
            });
1 Answers
            devTools = ((ChromeDriver) driver).getDevTools();
            devTools.createSession();
            devTools.send(Network.clearBrowserCache());
            devTools.send(Network.setCacheDisabled(true));

            final RequestId[] requestIds = new RequestId[1];
            devTools.send(Network.enable(Optional.empty(), Optional.empty(), Optional.of(100000000)));
            devTools.addListener(Network.responseReceived(), responseReceived -> {
                

                requestIds[0] = responseReceived.getRequestId();
                String url = responseReceived.getResponse().getUrl();

                int status = responseReceived.getResponse().getStatus();
                String type = responseReceived.getType().toJson();
                String headers = responseReceived.getResponse().getHeaders().toString();

                String  responseBody = devTools.send(Network.getResponseBody(requestIds[0])).getBody();
Related