写点什么

Google 发布 Puppeteer 1.0

  • 2018-01-30
  • 本文字数:1205 字

    阅读完需:约 4 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Puppeteer 1.0 已经发布,其中进行了多项改进,包括对 JavaScript 堆栈以及页面性能的分析以及针对 JavaScript、CSS 的代码覆盖率信息。

Puppeteer 是一个 headless 自动化工具,它同时也是 Chrome 和基于 Chromium 网页浏览器的 API。Puppeteer 利用 Node.js 和 DevTools 协议,是一款良好的 Selenium WebDriver 替代品。

除了自动化浏览测试这一典型使用场景之外,Puppeteer 还可以应用于各种各样的浏览器自动化技术,包括重复执行任务、抓取内容以及生成屏幕截图等。Puppeteer 要求的 Node.js 的最低版本要达到 6.4,如果用户要使用更加现代的 ES2015+ API(例如 async/await)的话,用户的 Node.js 的版本要达到 8.x 或者更高。

该项目提供了一个运行于主机中的试用Puppeteer 应用程序,它能够帮助用户对Puppeteer 进行快速上手。

自从Puppeteer 最开始发布以来,它普遍地作为一种更加简便的方式被应用于将自动化引入至开发人员的工作流中。许多开发人员编写了大量的教程,并且提供了它们使用Puppeteer 进行工作时的反馈。

Valentino Gagliardi 是一名 JavaScript 以及 React 咨询师,他在所写的教程《 Using Puppeteer with Jest 》中谈到:

Puppeteer 给予了你无限的可能性。许多人都在使用 Puppeteer 来构建新的测试框架。它的 API 也得到了很大的改进,但是你必须要知道一些基本概念。

Gergely Nemeth 是一名 Node.js 专家,他在博客《 Simplicity of setting up Puppeteer 》中谈到了 Puppeteer 与基于 Selenium 工具的比较:

不论如何,你想要运行一个 Selenium 测试你都需要一个或是本地的或是云端的 Selenium 服务器或者 Selenium 集群,并且还需要浏览器驱动来控制 Chrome、Firefox 或是其它的浏览器。这个过程需要的组件太多了,并且很难能完全配置正确。为 Selenium 编写调试测试代码也是极具挑战性的,即便是编写一些简单的测试也不那么容易,比如从测试用例中抓取控制台输入结果、能够让你看清正在发生的事情或者拦截请求的慢速测试(slowdown test)。

不是所有人都坚信 Puppeteer 是迈向正确方向的一步。Oren Rubin 是 Testim.io 的 CEO,Testim.io 是一个机器学习测试自动化平台。Oren Rubin 提出了一个问题, Puppeteer 能否真正帮到开发社区,他在其中指出:

Selenium 的过人之处在于他们说服了所有的浏览器提供商都支持了相同的低级 API(这件事花费了很多年!他们试图说服 Apple、Microsoft 以及 Google 一起工作),他们甚至还用 10 种以上的语言(包括 JavaScript)实现了这个 API。

Puppeteer 最大的局限在于它仅仅支持对 Chrome 和基于 Chromium 的浏览器的测试。如果你需要进行自动化的跨浏览器测试,你还是应该使用基于 Selenium 的解决方案。有许多工具能够简化 Selenium 驱动安装的安装复杂性,能够简化其测试过程以及配置过程。

查看英文原文: Google Releases Puppeteer 1.0

2018-01-30 18:004062

评论

发布
暂无评论
发现更多内容

【CSS 盒子模型(下)】:padding 和 margin

翼同学

CSS html 前端 8月月更

直播预告丨阿里云佐井:关注预警6要素,帮助用户实现精准监控和告警

阿里云弹性计算

监控 预警

【CSS 盒子模型(上)】:width、height、overflow、border

翼同学

CSS html 前端 8月月更

如何通过经纬度坐标获取附近的地址信息?

HarmonyOS SDK

定位

混迹职场10多年的数据开发老鸟,居然被一个职场新人上了一课

雨果

数据工程师

开源,无禁止即可为

Databend

开源社区 大数据 开源 #开源 databend

Docker杀掉了容器?问题分析与解决过程全面复盘

程序员欣宸

Docker 8月月更

记录一次数据库CPU被打满的排查过程

京东科技开发者

数据库 cpu cpu飙满 调优 慢SQL

Spring Security系列教程17--注销登录的实现及原理分析

一一哥

spring security spring-boot 注销登录

30 分钟轻松搞定正则表达式基础

霍格沃兹测试开发学社

亚马逊云科技与TalkingData携手助力美妆巨头数字化营销闭环安全合规地提效

Lily

SUSE 加速汽车行业智能化发展

Rancher

Kubernetes k8s rancher

技术分享 | 黑盒测试方法论—场景法

霍格沃兹测试开发学社

Selenium 中的 JUnit 注解

FunTester

弹性云端新算力,驱动沉浸新交互 |2022阿里云金融创新峰会

阿里云弹性计算

计算巢 云盒 倚天实例 专属Region

持久,redis 持久化有哪几种方式,怎么选?

知识浅谈

redis持久化 8月月更

佛山复星禅诚医院黄汉森:云边协同,打造线上线下一体化智慧医疗

阿里云弹性计算

弹性计算 分布式云 云盒 异地双活

MySQL查询重写插件

TimeFriends

8月月更

Rancher 2.6 全新 Logging 快速入门(2)

Rancher

Kubernetes k8s rancher

【CSS】什么是外边距的重叠?常见的有哪几种重叠情况?

翼同学

CSS 前端 编程语言 8月月更

源码解析 kubectl port-forward 工作原理

张晓辉

Kubernetes 云原生 源码解析

超大规模跨域集群统一监控实践

移动云大数据

【CSS·圆角边框】有关border-radius属性的记录以及实现原理

翼同学

CSS html 前端 8月月更

【CSS关键字】:inherit、initial、unset分别有哪些作用?

翼同学

CSS html 前端 8月月更 学习分享

[JS入门到进阶] 手写解析uin8数组的工具:解析二进制字节,太快太方便了!

HullQin

CSS JavaScript html 前端 8月月更

数字藏品app开发:数字藏品发行制作的关键

开源直播系统源码

NFT 数字藏品 数字藏品开发 数字藏品系统 数字藏品软件

mysql基础

楠羽

#开源

面试突击79:Bean 作用域是啥?它有几种类型?

王磊

Java 常见面试题

什么?MySQL的等值查询竟然出错了??

转转技术团队

MySQL

极简云上分析,释放数据价值|Kyligence 邀您参加2022秋季线上论坛

Kyligence

数据分析 数据价值 数据管理 智能多维数据库

【CSS】怎么理解层叠性、继承性和优先性?选择器的权重如何叠加?

翼同学

CSS html 前端 编程语言 8月月更

Google发布Puppeteer 1.0_JavaScript_Dylan Schiemann_InfoQ精选文章