点击围观!腾讯 TAPD 助力金融行业研发提效、敏捷转型最佳实践! 了解详情
写点什么

Google Puppeteer 加入到 headless Chrome 的工具行列

  • 2017-08-24
  • 本文字数:932 字

    阅读完需:约 3 分钟

Chrome DevTools 团队发布了 Puppeteer ,一个基于 Node API 的 headless Chrome 工具。Puppeteer 提供了与其他第三方工具相似的功能,促使它们不断地创新与进步。

Selenium 可以支持多种浏览器,与之不同的是,Puppeteer 的目标很单一,它只支持 headless Chrome。它提供了一组 Node API,所以对于开发人员来说,它的使用方式与其他工具很相似。

复制代码
const puppeteer = require('puppeteer');
(async() => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({path: 'example.png'});
browser.close();
})();

这段代码是从 Puppeteer 的 README 文件中摘取的。

这个项目背后的动机是要大幅简化 headless Chrome(首发于 Chrome v59)的交互操作。Google 性能工程师 Paul Irish写道,现有的交互协议太过复杂:

从我个人的经验来看,原生的 DevTools 协议对于开发者来说并不是最理想的,特别是如果要用它来编写自动化脚本,所以我们很需要这样的一个带有高级 API 的库。

社区也意识到这个问题。在 PhantomJS 退役之后,出现了很多替代者。在 headless Chrome 发布之后, Chromeless Chrominator Chromy 也相继出现。而有了 Puppeteer 之后,第三方工具需要快速创新才有可能在这场竞争中生存下来。市场有可能会来一次大洗牌。

在 Medium 的一篇博文中,作者 Ken Soh 认为 Google 团队的进入对于开发者来说是积极正面的:

当然,如果 Google 决定要拥抱社区,那么状况很快就会得到改善。基于 Chrome 的解决方案给开发者带来了更多的选择,它们有别于那些有既定生态系统的成熟组织。

Chromeless 在某些方面存在一定的优势,比如可以在 AWS Lambda 上远程运行测试用例。不过 Puppeteer 后续也可能支持 Lambda。Puppeteer 目前需要 7.1 版本的 Node,而 Lambda 只支持 6.10.3 版本的 Node。对于部分开发者来说,只能在单个浏览器上进行测试就像一个诅咒一样。不过 Soh 认为,对于大部分开发者来说,能够在 Chrome 上进行测试就已经很好了:

如果你可以在 Chrome 或 headless Chrome 上运行测试,那么大可以认为你的 Web 应用对于你的大部分用户来说是没有问题的。

查看英文原文: Google’s Puppeteer Joins Crowd of Headless Chrome Tools

2017-08-24 19:003296
用户头像

发布了 321 篇内容, 共 127.1 次阅读, 收获喜欢 138 次。

关注

评论

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

ISV生态合作伙伴体系多领域赋能,开拓市场赛道

元年技术洞察

数据中台 数据 数字化转型 ISV 方舟平台

一文总结ACE代码框架

OpenHarmony开发者

OpenHarmony

TDengine 公布 2022 年度中国时序数据应用创新奖,33 个科技企业创新应用脱颖而出

TDengine

数据库 tdengine 时序数据库

react源码中的fiber架构

flyzz177

React

react hook 源码完全解读

flyzz177

React

行业分析| 交通综合执法对讲系统

anyRTC开发者

指挥调度 快对讲 语音对讲 视频对讲 综合执法

牛啊!长这么大还是头一次见24W字的SpringBoot从入门到实战文档

程序知音

Java spring 微服务 springboot 后端技术

火山引擎 DataLeap 通过中国信通院测评,数据管理能力获官方认可!

字节跳动数据平台

大数据 数据治理

信用卡APP评测系列:科技赋能信用卡APP创新升级,助力客户体验提升

易观分析

金融 信用卡

甩掉容量规划炸弹:用 AHPA 实现 Kubernetes 智能弹性伸缩

阿里巴巴中间件

阿里云 Kubernetes 云原生 AHPA

赞赞赞!融云收获行业媒体「组团打 Call」

融云 RongCloud

使用 NineData 高效编写 SQL

NineData

数据库 sql 数据库开发 数据管理工具 NineData

Diffie-Hellman密钥协商算法探究

百度Geek说

数据安全 企业号 1 月 PK 榜

usdt持币生息理财模式系统开发

l8l259l3365

Java高手速成 | 高质量代码编写最佳实践

TiAmo

编程好习惯 设计原则 Java’

HDI压合设计准则作业规范

攻城狮华哥

PCB PCB设计 HDI

编程的终结;展望2023年AI系统方向;AI的下一个阶段

OneFlow

人工智能 深度学习

【等保小知识】等保四级是最高级别吗?等保四级适用于哪些领域?

行云管家

等保 等保测评 等保四级

【等保小知识】等保3.0就是等保三级吗?

行云管家

等保 等保2.0 等保3.0

大咖说·对话开源|与Tapdata论道数据技术开放生态

大咖说

开源

视频实时自然美颜, 无惧素颜上镜

HMS Core

HMS Core

华为云Stack新版发布:构筑行业云底座,共创行业新价值

华为云开发者联盟

云计算 后端 华为云 企业号 1 月 PK 榜

软件测试/测试开发 | AppCrawler 自动遍历测试工具实践(一)

测试人

软件测试 自动化测试 测试开发 自动遍历 AppCrawler

学术加油站|机器学习应用在数据库调优领域的前沿工作解读

OceanBase 数据库

数据库 oceanbase

【Redis 技术探索】「数据迁移实战」手把手教你如何实现在线 + 离线模式进行迁移 Redis 数据实战指南(数据检查对比)

洛神灬殇

redis 1月日更 数据对比 Redis-full-check

为什么网络I/O会被阻塞

华为云开发者联盟

后端 开发 华为云 企业号 1 月 PK 榜

无监控,不运维!深入浅出介绍ChengYing监控设计和使用

袋鼠云数栈

文末领资料 | 研发效能领域的三个年度关键词

思码逸研发效能

研发管理 研发效能

react源码中的hooks

flyzz177

React

Google Puppeteer加入到headless Chrome的工具行列_JavaScript_David Iffland_InfoQ精选文章