Selenium 4 (Node.js) - TypeError: driver.manage(...).getDevTools is not a function
I'm trying to capture network requests and responses in Selenium 4 using Node.js and Chrome. I'm encountering the error: TypeError: driver.manage(...).getDevTools is not a function
.
My environment details:
- Selenium WebDriver: 4.28.1
- ChromeDriver: 133.0.0
- Chrome: 133.0.6943.60
Here's my code:
const { Builder, Browser, Capabilities } = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
async function captureNetworkRequests() {
const capabilities = new Capabilities();
capabilities.set('goog:chromeOptions', {
'args': [
// other chrome options if needed
]
});
const driver = await new Builder()
.withCapabilities(capabilities)
.forBrowser(Browser.CHROME)
.build();
const devTools = await driver.manage().getDevTools(); // Error occurs here
await devTools.send('Network.enable', {});
devTools.on('Network.requestWillBeSent', (event) => {
const request = event.request;
console.log('Request URL:', request.url);
});
devTools.on('Network.responseReceived', async (event) => {
const response = event.response;
const requestId = event.requestId;
const url = response.url;
const status = response.status;
if (url.includes('ws_api.php?')) {
console.log(`${status} ${url}`);
try {
const responseBody = await devTools.send('Network.getResponseBody', { requestId });
console.error(responseBody.body);
const assert = require('assert');
assert.strictEqual(status, 200, `Expected status 200 for ${url}, but got ${status}`);
} catch (error) {
console.error("Error getting response body:", error);
}
}
});
try {
await driver.get('[/](/)');
await new Promise(resolve => setTimeout(resolve, 10000));
} finally {
await driver.quit();
await devTools.close();
}
}
captureNetworkRequests();
I'm trying to use Chrome DevTools (via driver.manage().getDevTools()) to capture network requests/responses in Selenium 4 with Node.js. However, I'm encountering errors, and createCDPConnection is also not working. I cannot use driver.executeScript due to CSRF vulnerabilities. A working example or help with DevTools/CDP configuration would be very helpful.