[英]Is there any way in Puppeteer to get the exact data from the Chrome Network tab?
我正在尝试使用 Puppeteer 导航到 URL 并从 Chrome 开发人员工具的网络选项卡中提取指标。 例如,导航到此页面会显示以下网络信息,并捕获总共 47 个请求。
但是,我正在尝试使用以下代码获取这些指标:
import { Browser, Page } from "puppeteer";
const puppeteer = require('puppeteer');
async function run() {
const browser: Browser = await puppeteer.launch({
headless: false,
defaultViewport: null
});
const page: Page = await browser.newPage();
await page.goto("https://stackoverflow.com/questions/30455964/what-does-window-performance-getentries-mean");
let performanceTiming = JSON.parse(
await page.evaluate(() => JSON.stringify(window.performance.getEntries()))
);
console.log(performanceTiming);
}
run();
但是,当我查看performanceTiming
对象时,它只有 34 个项目:
因此,我的问题是:
performance.getEntries()
显示的请求数量存在差异?performance.getEntries()
显示所有请求而不是其中的一部分?您可以使用page.tracing功能。
const browser = await puppeteer.launch({ headless: true});
const page = await browser.newPage();
await page.tracing.start({ categories: ['devtools.timeline'], path: "./tracing.json" });
await page.goto("https://stackoverflow.com/questions/30455964/what-does-window-performance-getentries-mean");
var tracing = JSON.parse(await page.tracing.stop());
devtools.timeline
类别有很多东西需要探索。
您可以通过ResourceSendRequest
获取所有请求过滤
tracing.traceEvents.filter(te => te.name ==="ResourceSendRequest")
以及通过ResourceReceiveResponse
过滤的所有响应
tracing.traceEvents.filter(te => te.name ==="ResourceReceiveResponse")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.