JavaScript 五分钟玩一下 Headless Chrome

chrishyman · 2017年08月17日 · 7639 次阅读

是什么让前端工程师狂欢,让 PhantomJS 维护者宣告失业,是大企业的良心泯灭,还是 chrome 59 之后的一个新坑?

—— 让我们走进 Headless Chrome。

一、浅尝辄止

让我们先感受下这个东西:

Chrome 的应用程序路径 /Contents/MacOS/Google\ Chrome --headless --remote-debugging-port=8888 http://baidu.com/

  • remote-debugging-port 是你的绑定端口号
  • 后面这个 baidu 是你要直接生成解析的地址(另外你还有很多体位可以玩弄,例如 --dump-dom【解析 dome】, --print-to-pdf【生成 pdf】, --screenshot【截图】, --remote-debugging-port 和上述功能不兼容,记得去掉。 )

二、试

首先我们需要安装 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 操作,以后前端测试的未来就是它了。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请 注册新账号