Im using selenium 4.26 with openJdk 11.0.2. I have a selenium grid with 10 machines each having chrome / firefox version 130 installed. (which is inline with selenium 4.26 devtools support)
Problem:1.In standalone mode, i can able to retrieve logs but in grid mode i was unable to generate logs and it doesn't show any errors/warnings too.2. In Standalone mode itself for firefox browser, devtools logs are not generated.
private void getNetworkLog() { String browserName = ReadPropertyFile.getInstance().getPropertyValue("browserName"); try { DevTools devTools = null; // Create DevTools session if(ReadPropertyFile.getInstance().getPropertyValue("runMode").equalsIgnoreCase(RunModeConstants.STANDALONE_MODE) && browserName.equalsIgnoreCase(BrowserConstants.CHROME_BROWSER)) { devTools = ((ChromeDriver) RemoteCustomDriver.getInstance().getRemotedriver()).getDevTools(); }else if(ReadPropertyFile.getInstance().getPropertyValue("runMode").equalsIgnoreCase(RunModeConstants.STANDALONE_MODE) && browserName.equalsIgnoreCase(BrowserConstants.FIREFOX_BROWSER)) { devTools = ((FirefoxDriver) RemoteCustomDriver.getInstance().getRemotedriver()).getDevTools(); }else if(ReadPropertyFile.getInstance().getPropertyValue("runMode").equalsIgnoreCase(RunModeConstants.STANDALONE_MODE) && browserName.equalsIgnoreCase(BrowserConstants.EDGE_BROWSER)) { devTools = ((EdgeDriver) RemoteCustomDriver.getInstance().getRemotedriver()).getDevTools(); }else if(ReadPropertyFile.getInstance().getPropertyValue("runMode").equalsIgnoreCase(RunModeConstants.GRID_MODE) && browserName.equalsIgnoreCase(BrowserConstants.CHROME_BROWSER)) { RemoteWebDriver d=new ChromeDriver(); if(d instanceof ChromeDriver) { log.info("Remotewebdriver is instace of chromedriver"); ChromeDriver c = (ChromeDriver)d; devTools = c.getDevTools(); } } if (devTools!=null) { devTools.createSession(); // Enable network logging devTools.send(Network.enable(Optional.empty(), Optional.empty(), Optional.empty())); // Register listener for network events devTools.addListener(Network.requestWillBeSent(), event -> { log.info("Request URL: " + event.getRequest().getUrl()); log.info("Request headers -->" + event.getRequest().getHeaders()); if (event.getRequest().getHasPostData().isPresent()) { log.info("POST data -->" + event.getRequest().getPostData()); } // You can print other information from the event such as request method, // headers, etc. }); devTools.addListener(Network.responseReceived(), event -> { Integer statusCode = event.getResponse().getStatus(); if (statusCode.toString().startsWith("4")) { log.info("Received status code -->" + event.getResponse().getStatus()+" when hitting the url --> " + event.getResponse().getUrl()); log.info("Request headers -->" + event.getResponse().getRequestHeaders()); log.info("Response received is -->" + event.getResponse()); } // You can print other information from the event such as response status, // headers, etc. }); } } catch (Exception e) { log.error(e.toString()); throw new RuntimeException(e.toString()); }}