Для отслеживания ответов на POST запросы в Puppeteer вы можете использовать метод `page.waitForResponse()`. Вот пример, как это можно сделать:
```javascript
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setRequestInterception(true);
page.on('request', request => {
// Если это POST запрос, то отслеживаем его ответ
if (request.method() === 'POST') {
request.continue();
page.waitForResponse(response => {
// Здесь можно добавить логику для вывода нужной информации
console.log(response);
return response.request() === request;
});
} else {
request.continue();
}
});
await page.goto('https://www.example.com');
// Здесь идет выполнение POST запроса, который будет отслеживаться
await page.evaluate(() =>
fetch('https://www.example.com/api', {
method: 'POST',
body: JSON.stringify({ data: 'example' }),
headers: { 'Content-Type': 'application/json' },
})
);
await browser.close();
})();
```
Чтобы улучшить вывод данных при использовании `waitForResponse()` и чтобы получать более полезную информацию, вы можете использовать методы и свойства CDP (Chrome DevTools Protocol). Например, вы можете использовать `response.headers()`, чтобы получить заголовки ответа, или `response.text()`, чтобы получить тело ответа в виде текста. Вот пример улучшенного вывода данных:
```javascript
page.waitForResponse(response => {
console.log('Status:', response.status()); // Вывод статуса ответа
console.log('URL:', response.url()); // Вывод URL запроса
console.log('Headers:', response.headers()); // Вывод заголовков ответа
response.text().then(body => console.log('Body:', body)); // Вывод тела ответа
return response.request() === request;
});
```
Вы можете дополнить этот код для логирования и вывода нужной информации в удобном для вас формате.