一、前提

windows环境的puppeteer环境配置要简单点,mac环境坑竟然有点多,这边稍微提下

二、开发环境

nodejs

puppeteer

mac

三、简单介绍下puppeteer

Puppeteer 核心功能
(1)利用网页生成PDF、图片
(2)爬取SPA应用,并生成预渲染内容(即“SSR” 服务端渲染)
(3)可以从网站抓取内容
(4)自动化表单提交、UI测试、键盘输入等
(5)帮你创建一个最新的自动化测试环境(chrome),可以直接在此运行测试用例
(6)捕获站点的时间线,以便追踪你的网站,帮助分析网站性能问题

四、环境准备

1.安装puppeteer

$:yarn add puppeteer
或者
$:npm i puppeteer"
这边一般会遇到无法下载Chromium的问题,解决办法:
$:npm i --save puppeteer --ignore-scripts

2.下载Chromium

  1. 下载好后puppeteer后,要下载Chromium,首先我们要找到对应的puppeteer对应的Chromium-version版本
  2. 项目->node_modules->puppeteer->package.json->搜索一下chromiun_revision 查看当前支持的版本号
  3. 打开:https://npm.taobao.org/mirrors/chromium-browser-snapshots/Mac/ ,找到chromium的历史版本,下载即可,直接解压放到puppeteer下面也可以,也可以单独建立一个文件夹

3.准备脚本,

  1. Mac版本要定位到Chromium.app的包内容
  2. 新建baidu.js
const puppeteer = require('puppeteer');
(async () => {
const brower = await puppeteer.launch({
executablePath:'/Users/wangxiao/Documents/wx_vue/nodejs/chromium/Chromium.app/Contents/MacOS/Chromium',
headless:false
});
const page = await brower.newPage();
await page.goto('http://www.baidu.com');
await page.screenshot({path:'baidu.png'});
await brower.close();
})().catch(error =>{console.log('error')});

说明:

  • require:ES6语法,引入puppeteer包
  • executablePath:运行Chromium或Chrome可执行文件的路径
  • headless:是否运行在浏览器headless模式,true为不打开浏览器执行,默认为true

4.运行(简单的程序运行成功)

node baidu.js

5.经常报错的点

这个应该是权限问题,解决办法:sudo chmod a+x Chromium.app

【puppeteer】前端自动化初探(一)的更多相关文章

  1. 【基于Puppeteer前端自动化框架】【二】PO模式,断言(如何更简便逻辑的写测试代码)

    一.概要 前面介绍了Puppeteer+jest+TypeScript做UI自动化,但是这知识基础的,我们实现自动化要考虑的很多,比如PO模式,比如配置文件,比如断言等等.下面就来一一实现我是怎么用p ...

  2. 【基于PUPPETEER前端自动化框架】【一】TypeScript+Puppeteer+Jest 整合

    前提:掌握Jest + Puppeteer 1.Jest环境配置 2.Jest-MATCHERS匹配器 3.Jest-全局变量设置 4.Puppeteer安装 5.Puppeteer元素获取 6.Pu ...

  3. Puppeteer前端自动化测试实践

    本篇内容将记录并介绍使用Puppeteer进行自动化网页测试,并依靠约定来避免反复修改测试用例的方案.主要解决页面众多时,修改代码导致的牵连错误无法被发现的运行时问题.文章首发于个人博客.对前端感兴趣 ...

  4. (转)Bootstrap 之 Metronic 模板的学习之路 - (7)GULP 前端自动化工具

    https://segmentfault.com/a/1190000006738327 初步了解 Metronic 的结构和应用后,我们就可以在项目中应用起来了.考虑到实际项目应用时,会有很多文件需要 ...

  5. 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)

    通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...

  6. 前端自动化工具gulp自动添加版本号

    之前,我介绍了学习安装并配置前端自动化工具Gulp,觉得gulp确实比grunt的配置简单很多,于是我决定再深入学习一下gulp,就去网上查了资料,发现gulp还可以自动添加版本号,这个功能就为我平时 ...

  7. 学习安装并配置前端自动化工具Gulp

    Gulp和所有Gulp插件都是基于nodeJs来运行的,因此在你的电脑上需要安装nodeJs,安装过程请移驾安装并配置前端自动化工具--grunt.安装完成后,通过运行cmd进入DOS命令窗口,如图: ...

  8. 前端自动化构建工具gulp的使用总结

    前端自动化构建工具gulp的使用总结 博主最近偶的空闲,在此对gulp的使用做一个总结,让小伙伴知道如何合理的使用gulp以及gulp的使用技巧. 谈到gulp,有人可能就会想到另外一个构建工具gru ...

  9. 前端自动化开发之grunt

    上篇文章介绍了前端模块化开发工具seaJs,利用seaJs我们可以轻松实现前端的模块化编程,参见http://www.cnblogs.com/luozhihao/p/4818782.html 那么今天 ...

随机推荐

  1. 比较爬虫用的语言Python与Go

    Python是我比较喜欢的语言,莫名的喜欢,对Python的学习可能起初是敲错了网址开始的,哈哈哈~ 工作的任务从一个网站后台做登录.爬取数据,写入服务器Redis中,同事认为我会用PHP来写,哼!让 ...

  2. spring cloud微服务下手动回滚事务

    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 这里使用的场景是,跨服务调用接口,比如:用户信息和用户积分 ...

  3. GC 是什么? 为什么要有GC?

    C/C++中由程序员进行对象的回收像学校食堂中由学生收盘子,.Net 中由GC 进行垃圾回收像餐馆中店员 去回收. GC 是垃圾收集器(Garbage Collection).程序员不用担心内存管理, ...

  4. java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Timestamp

    java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Timestamp 错误是因为时间类型出现了0 ...

  5. 断网环境,Python环境迁移

    Python刚装好断网了怎么办? wget不管用怎么办? 想把现有的Python环境转移到另外一台机器上怎么办? 这就用到了离线安装 1.创建目录用于存放下载的包,并进入该目录 mkdir lihai ...

  6. TypeError: format string

    先来看一段Python代码: class Negate: def __init__(self, val): self.val = -val def __repr__(self): return str ...

  7. spring-data-mongodb与mongo shell的对应关系

    除了特殊注释外,本文的测试结果均基于 spring-data-mongodb:1.10.6.RELEASE(spring-boot-starter:1.5.6.RELEASE),MongoDB 3.0 ...

  8. vue-baidu-map 的简单使用

    首先附上vue-baidu-map 文档地址: https://dafrok.github.io/vue-baidu-map/#/zh/index 1.安装,初步使用,文档说的都很明白,就不在过多重复 ...

  9. eclipse中访问不了tomcat首页server Locations变灰无法编辑

    eclipse中访问不了tomcat首页server Locations变灰无法编辑 2014年07月25日 14:37:21 wuha0 阅读数:19139更多 个人分类: servlet   解决 ...

  10. Linux的.pid文件

    PID全称是Process Identification. PID是进程的代号,每个进程有唯一的PID编号.它是进程运行时系统随机分配的,并不代表专门的进程.在运行时PID是不会改变标识符的,但是你终 ...