Selenium 4 (node.js): как захватить сетевые запросы? (GetDevTools, CreateCdpConnection)Javascript

Форум по Javascript
Ответить
Anonymous
 Selenium 4 (node.js): как захватить сетевые запросы? (GetDevTools, CreateCdpConnection)

Сообщение Anonymous »

selenium 4 (node.js) - typeerror: Driver.manage (...). getDevTools не является функцией < /p>
Я пытаюсь захватить сетевые запросы и ответы в селене 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();
Я пытаюсь использовать Chrome devtools (через river.manage (). getDevTools ()) для захвата сетевых запросов/ответов в Selenium 4 с node.js. Тем не менее, я сталкиваюсь с ошибками, и CreateCdpConnection также не работает. Я не могу использовать Driver.executcript из -за уязвимостей CSRF. Рабочий пример или помощь с конфигурацией DevTools/CDP было бы очень полезным.


Подробнее здесь: https://stackoverflow.com/questions/794 ... reatecdpco
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»