Я пытаюсь захватить сетевые запросы и ответы в селене 4 Использование Node.js и Chrome. Я сталкиваюсь с ошибкой: typeerror: Driver.manage (...). GetDevTools не является функцией .
Моя среда Подробности:
Webdriver Selenium: 4.28.1 < /li>
Chromedriver: 133.0.0 < /li>
Chrome: 133.0.6943.60 < /li>
< /ul>
Вот мой код: < /p>
Код: Выделить всё
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('[https://weatherstack.com/](https://weatherstack.com/)');
await new Promise(resolve => setTimeout(resolve, 10000));
} finally {
await driver.quit();
await devTools.close();
}
}
captureNetworkRequests();
Подробнее здесь: https://stackoverflow.com/questions/794 ... reatecdpco
Мобильная версия