是什么让前端工程师狂欢,让 PhantomJS 维护者宣告失业,是大企业的良心泯灭,还是 chrome 59 之后的一个新坑?
—— 让我们走进 Headless Chrome。
一、浅尝辄止
让我们先感受下这个东西:
Chrome 的应用程序路径 /Contents/MacOS/Google\ Chrome --headless --remote-debugging-port=8888 http://baidu.com/
二、试
首先我们需要安装 puppeteer (Chrome 提供的一个 Headless API 封装库,安装前请确保自己 Node 的版本在 7.10 以上)
puppeteer 的安装体积会比较大,因为他会下载一个 chrome 内核进来。
const puppeteer = require('puppeteer');
(async() => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://google.com');
await page.screenshot({path: 'google.png'});
browser.close();
})();
这样就是一个创建截图的例子。
三、悟
官方背景加上非常勤的 API Update,以后服务端解析确实是没 PhantomJS 啥事了。而且 Headless 的 API 支持大量的 Event 操作,以后前端测试的未来就是它了。