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

\\

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

\\

\const puppeteer = require('puppeteer');\(async() =\u0026gt; {\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

Google Puppeteer加入到headless Chrome的工具行列相关推荐

  1. 用Python驱动Headless Chrome

    Headless Browser(无头的浏览器)是什么鬼? 简而言之,Headless Browser是没有图形用户界面(GUI)的web浏览器,通常是通过编程或命令行界面来控制的. Headless ...

  2. PuppeteerSharp: 更友好的 Headless Chrome C# API

    前端就有了对 headless 浏览器的需求,最多的应用场景有两个 UI 自动化测试:摆脱手工浏览点击页面确认功能模式 爬虫:解决页面内容异步加载等问题 也就有了很多杰出的实现,前端经常使用的莫过于  ...

  3. centos安装使用puppeteer和headless chrome

    Google推出了无图形界面的headless Chrome之后,可以直接在远程服务器上直接跑一些测试脚本或者爬虫脚本了,猴开心!Google还附送了Puppeteer用于驱动没头的Chome. 阿里 ...

  4. Puppeteer -headless Chrome 的 Node.js API

    Puppeteer 是一个控制 headless Chrome 的 Node.js API .它是一个 Node.js 库,通过 DevTools 协议提供了一个高级的 API 来控制 headles ...

  5. Serverless 实战——使用 Rendertron 搭建 Headless Chrome 渲染解决方案

    为什么需要 Rendertron? 传统的 Web 页面,通常是服务端渲染的,而随着 SPA(Single-Page Application) 尤其是 React.Vue.Angular 为代表的前端 ...

  6. python chrome headless_使用Python控制Headless Chrome

    首先要解释一下 Headless Chrome,通俗的讲就是运行一个没有GUI的Chrome,在 Headless Chrome 出现以前有 PhantomJS ,但是自从 Headless Chro ...

  7. 什么是 Headless Chrome

    什么是 Headless Chrome Headless Chrome 是 Chrome 浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有 Chrome 支持的特性运行你的程序.相比于现代浏览 ...

  8. 探索Headless Chrome

    作者:陈宁,就职于饿了么先后从事电商.CRM开发,经历前端从蛮荒到现代的过程,热爱新技术,推崇自动化. 责编:陈秋歌,关注前端开发领域,寻求报道或者投稿请发邮件chenqg#csdn.net. 本文为 ...

  9. 在 Chrome 开发者工具中调试 node.js

    命令行工具 devtool ,它可以在 Chrome 的开发者工具中运行 Node.js 程序. 下面的记录显示了在一个 HTTP 服务器中设置断点的情况. 该工具基于 Electron 将 Node ...

最新文章

  1. 资源下载 | 历年 AAAI 最佳论文(since 1996)
  2. 你也可以玩转Skype -- 基于Skype API开发外壳程序入门
  3. spring各版本jar包和源码
  4. Linux学习日记之sshd服务
  5. Yii2 的 redis 应用
  6. 在js在页面中添加百度统计代码
  7. 有头结点单链表的逆置
  8. 圆形指示器radialIndicator控件的使用
  9. 仓储系统流程图_有效的仓储物流管理的6个重要提示
  10. elasticsearch_spring-data-elasticsearch 快速入门-Spring Boot+Elasticsearch
  11. 应用数据挖掘进行客户关系管理
  12. LibMesh 数据结构类
  13. Git分支设计与CI/CD
  14. 磊科linux无线网卡驱动安装步骤,无线网卡驱动安装方法
  15. 灵敏度分享码显示服务器不可用,和平精英ss12最稳灵敏度设置方法介绍-2021灵敏度分享码...
  16. Coap在Andorid中的简单应用
  17. 修改谷歌浏览器不安全提示
  18. 阿里巴巴云连接池durid数据库密码加密
  19. 借助Docker hub自己手动制作镜像(以Nginx镜像为例)
  20. 《心流:最优体验心理学》读书笔记

热门文章

  1. 【转】wireshark过滤规则
  2. Java泛型你了解多少
  3. Mysql日期差的函数
  4. 2021年宣城市高考成绩查询,宣城高考成绩查询入口
  5. 检测到目标主机可能存在缓慢的http拒绝服务攻击_高防服务器能防住哪些攻击?“流量清洗”与它有什么关系?...
  6. 学习前端需要掌握什么基础?
  7. 关于excel表的生成
  8. java使用hashset_JAVA中Set集合--HashSet的使用
  9. 理想制动力分配曲线matlab源代码_宝马进入“血拼”状态,动力倍儿棒
  10. 电脑主板接口_电脑主板接口大全