概述
简介:
一个基于webkit的JS API,使用QtWebKit作为核心浏览器,使用webkit来编译解释执行JS代码。任何你可以在基于webkit的浏览器里能做到的事情,它都能做到。但是,它不仅是个隐形的浏览器,提供诸如CSS选择器、支持Web标准、DOM操作、JSON、HTML5、Canvas、SVG等支持,提供I/O处理,读写文件等功能。支持Windows、Mac OS、Linux三个平台,并提供对应的二进制安装包。
PhantomJS 已形成一个功能非常强大的生态圈内容:
- CasperJS:一个开源的导航脚本处理和高级测试工具
- Poltergeist:测试工具Capybara的测试驱动
- Guard-Jasmine:能够基于Rails实现自动化测试Jasmine的Specs,GitHub
- GhostDriver:远程 WebDriver 有线协议的开源实现
- PhantomRobot:PhantomJS机器人测试框架
- Mocha-PhantomJS:JavaScript测试框架Mocha的客户端
- 基于PhantomJS的截屏工具:如capturejs、pageres、phantomjs-screenshots、manet、screenshot-app等
使用场景:
- 网络监测:自动进行网络性能监控、跟踪页面加载情况以及将相关监控的信息以标准的HAR格式导出
- 网页截屏:以编程方式抓起CSS、SVG和Canvas等页面内容,即可实现网络爬虫应用。构建服务端Web图形应用,如截图服务、矢量光栅图应用
- Web测试:无需浏览器的情况下进行Web测试,且支持很多测试框架,如YUI Test、Jasmine、WebDriver、Capybara、QUnit、Mocha等
- 页面访问自动化:使用标准的DOM API或一些JS框架访问和操作Web页面,尤其是爬虫
入门
API
webpage:提供一套可以访问和操作web文档的核心方法,包括操作DOM、事件捕获、用户事件模拟等等。
system:提供一些与操作系统相关的接口,例如访问操作系统信息、访问系统环境变量、接受命令行参数等等与程序执行相关的系统信息。
fs:FileSystem,提供执行文件I/O操作的标准接口,如读写、删除文件等。NodeJS也内建相关的核心模块。
webserver:基于它来实现自己的webserver,用来处理请求并且执行PhantomJS代码等。