PhantomJS:基于WebKit、开源的服务器端JavaScript API

jopen 9年前

PhantomJS 是一个基于 WebKit 的服务器端JavaScript API,它基于 BSD 开源协议发布。PhantomJS无需浏览器的支持即可实现对Web的支持,且原生支持各种Web标准,如DOM 处理、JavaScript、CSS选择器、JSON、Canvas和可缩放矢量图形SVG。PhantomJS主要是通过JavaScript和 CoffeeScript 控制WebKit的CSS选择器、可缩放矢量图形SVG和HTTP网络等各个模块。PhantomJS主要支持Windows、Mac OS、Linux三个平台,并且提供了对应的二进制安装包,读者可在 下载页面 选择对应的版本下载解压即可使用。GitHub上还提供了GitHub、Google Code、 BitBucket 等各种方式的 源码下载地址

PhantomJS 的使用场景如下:

PhantomJS 已形成了一个功能非常强大的生态圈内容,相关项目如下:

  • CasperJS :一个开源的导航脚本处理和高级测试工具
  • Poltergeist :测试工具Capybara的测试驱动
  • Guard::Jasmine :能够基于Rails实现自动化测试Jasmine的Specs
  • GhostDriver :远程 WebDriver 有线协议的开源实现
  • PhantomRobot :PhantomJS机器人测试框架
  • Mocha-PhantomJS :JavaScript测试框架Mocha的客户端

此外,生态圈还包括基于PhantomJS实现了众多截屏工具,如 capturejspageresphantomjs-screenshotsmanetscreenshot-app 等;以及Node.js、Django、PHP、Sinatra等语言的截图API和 ConfessGhostStoryGrover 等众多工具。

PhantomJS当前最新版本是1.9,称为樱花(Sakura)。有趣的是PhantomJS的每个发布版本都以花来命名,PhantomJS 1.8叫作蓝色冬日玫瑰(Blue Winter Rose),PhantomJS 1.7叫作鲜艳的植物(Blazing Star),PhantomJS 1.6 叫作薰衣草(Lavender)等

接下来的 2.0版本 是一个非常重要的版本,该版本的开发工作已经完成,目前开发团队正在准备各个平台上的二进制版本以及相关文档的完善,相信很快就会有发布新闻。更多关于PhantomJS的信息,请登录其官网或托管在 GitHub上的站点 查看,有兴趣的读者还可以阅读并尝试下官方提供网络监控、页面自动化操作等 相关实例

来自:http://www.infoq.com/cn/news/2015/01/phantomjs-webkit-javascript-api