本文链接:
1.
在介绍puppeteer之前必须介绍一下phantomjs,phantomjs是一个可以用JavaScript编程的无头浏览器,它在后端使用了QtWebKit。
但是根据
由于缺乏有效的贡献,我将要把这个项目存档。
要是将来的某一天,要是我们想要重新开发spantomjs,我们会重新运行它。 PhantomJS版本2.1.1将会是最后一个已知的稳定版本。2.
puppeteer是一个Node库,是由Google官方开发的,它使用了 ,提供了强大的api来控制 的chrome或者Chromium。它也可以设置为控制完整的(非headless模式)的chrome或者Chromium。
3.
- 为每个页面生成截图和PDF;
- 抓取网页内容,也就是我们所说的爬虫;
- 自动化表单的提交,UI测试,键盘输入等;
- 创建最新的自动化测试环境。使用最新的JavaScript和浏览器功能直接在最新版本的Chrome中运行测试;
- 为你的网站创建一个 ,协助你诊断性能问题;
- 测试Chrome的Extensions;
4.
自1.7.0版本以来,Chrome官方都会发布一个 包,于 puppeteer的主要区别是,这个包默认不会下载 Chromium,更多区别可见 。
5.
根据的说明,目前puppeteer的组织架构如下。
- 通过 与浏览器进行通信。
- 实例可以有多个BrowserContext。
- 定义了一个浏览器session,她可以拥有多个页面。
- 至少拥有一个frame:main frame。。还可以有iframe或者frame创建的其他frames。
- 至少有一个 execution context(执行上下文)
- 拥有一个单独的 execution context(执行上下文),与 通信。
参考资料: