Puppeteer--其它功能

1.Page.exposeFunction()
Page.exposeFunction,这个 API 用来在页面注册全局函数,非常有用:
在比如给 window 对象注册 readfile 全局函数:
const puppeteer = require('puppeteer');
const fs = require('fs');
 
puppeteer.launch().then(async browser => {
  const page = await browser.newPage();
  page.on('console', msg => console.log(msg.text));
  await page.exposeFunction('readfile', async filePath => {
    return new Promise((resolve, reject) => {
      fs.readFile(filePath, 'utf8', (err, text) => {
        if (err)
          reject(err);
        else
          resolve(text);
      });
    });
  });
  await page.evaluate(async () => {
    // use window.readfile to read contents of a file
    const content = await window.readfile('/etc/hosts');
    console.log(content);
  });
  await browser.close();
});
 
2.page.metrics()
通过 page.metrics() 可以得到一些页面性能数据, 捕获网站的时间线跟踪,以帮助诊断性能问题。
  • Timestamp 度量标准采样的时间戳
  • Documents 页面文档数
  • Frames 页面 frame 数
  • JSEventListeners 页面内事件监听器数
  • Nodes 页面 DOM 节点数
  • LayoutCount 页面布局总数
  • RecalcStyleCount 样式重算数
  • LayoutDuration 所有页面布局的合并持续时间
  • RecalcStyleDuration 所有页面样式重新计算的组合持续时间。
  • ScriptDuration 所有脚本执行的持续时间
  • TaskDuration 所有浏览器任务时长
  • JSHeapUsedSize JavaScript 占用堆大小
  • JSHeapTotalSize JavaScript 堆总量

原文地址:https://www.cnblogs.com/absoluteli/p/14295501.html