Puppeteer是一个Node库,它提供了一个高级API来控制DevTools协议上的 Chrome或Chromium 。Puppeteer 默认运行无头,但可以配置为运行完整(非无头)Chrome或Chromium。


作用

  • 生成页面的屏幕截图和PDF。
  • 抓取SPA(单页面应用程序)并生成预渲染内容(即“SSR”(服务器端渲染))。
  • 自动化表单提交,UI测试,键盘输入等。
  • 创建最新的自动化测试环境。使用最新的JavaScript和浏览器功能直接在最新版本的Chrome中运行测试。
  • 捕获网站的时间线跟踪,以帮助诊断性能问题。
  • 测试Chrome扩展程序。
//基础模板
const puppeteer = require('puppeteer');

const saveScreenshot = async (url, path) => {

    // 启动浏览器
    const browser = await puppeteer.launch();
    // 打开页面
    const page = await browser.newPage();
    // 设置浏览器视窗
    page.setViewport({
        width: 1376,
        height: 768,
    });
    // 地址栏输入网页地址
    await page.goto(url);
    //截图
    await page.screenshot({ path });
    // 关闭浏览器
    await browser.close();
};

module.exports = saveScreenshot;


if (require.main === module) {
    // for test
    saveScreenshot('http://baidu.com', './img/baidu.png');
}



介绍一个工具 ->rimraf:用来删除文件和文件夹的,不管文件夹是否为空,都可删除.

const rimraf = require('rimraf');
rimraf('./source/test.txt',  ( err )=> { // 删除test.txt
  console.log(err);
});