微信号:infoqchina

介绍:有内容的技术社区媒体

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

2015-02-02 12:08 InfoQ


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 的使用场景如下:


无需浏览器的Web测试无需浏览器的情况下进行快速的Web测试,且支持很多测试框架,如YUI TestJasmineWebDriverCapybaraQUnitMocha等。


页面自动化操作使用标准的DOM API或一些JavaScript框架(如jQuery)访问和操作Web页面。


屏幕捕获以编程方式抓起CSS、SVG和Canvas等页面内容,即可实现网络爬虫应用。构建服务端Web图形应用,如截图服务、矢量光栅图应用。


网络监控自动进行网络性能监控、跟踪页面加载情况以及将相关监控的信息以标准的HAR格式导出。


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


CasperJS一个开源的导航脚本处理和高级测试工具


Poltergeist:测试工具Capybara的测试驱动


Guard::Jasmine:能够基于Rails实现自动化测试Jasmine的Specs


GhostDriver远程 WebDriver 有线协议的开源实现


PhantomRobotPhantomJS机器人测试框架


Mocha-PhantomJSJavaScript测试框架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上的站点查看,有兴趣的读者还可以点击“阅读原文”,阅读并尝试下官方提供网络监控、页面自动化操作等相关实例



 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 妙用php中的register_shutdown_function和fastcgi_finish_request 当当推荐团队的机器学习实践 muduo之使用经验 php文件缓存技术实现代码 调度器 Scheduler(三):包装多线程 Executor