Google Puppeteer加入到headless Chrome的工具行列_最新动态_新闻资讯_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 新闻资讯 > 最新动态 > Google Puppeteer加入到headless Chrome的工具行列

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

 2017/8/25 16:08:50    程序员俱乐部  我要评论(0)
  • 摘要:英文原文:Google'sPuppeteerJoinsCrowdofHeadlessChromeToolsChromeDevTools团队发布了Puppeteer,一个基于NodeAPI的headlessChrome工具。Puppeteer提供了与其他第三方工具相似的功能,促使它们不断地创新与进步。Selenium可以支持多种浏览器,与之不同的是,Puppeteer的目标很单一,它只支持headlessChrome。它提供了一组NodeAPI,所以对于开发人员来说,它的使用方式与其他工具很相似
  • 标签:Google 工具 Chrome
class="topic_img" alt=""/>

  英文原文: Google's Puppeteer Joins Crowd of Headless Chrome Tools

  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 应用对于你的大部分用户来说是没有问题的。

发表评论
用户名: 匿名