PhantomJS:基于WebKit、開源的服務器端JavaScript API
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 Test 、 Jasmine 、 WebDriver 、 Capybara 、 QUnit 、 Mocha 等。
- 頁面自動化操作 :使用標準的DOM API或一些JavaScript框架(如jQuery)訪問和操作Web頁面。
- 屏幕捕獲 :以編程方式抓起CSS、SVG和Canvas等頁面內容,即可實現網絡爬蟲應用。構建服務端Web圖形應用,如截圖服務、 矢量 光柵 圖應用。
- 網絡監控 :自動進行網絡性能監控、跟蹤頁面加載情況以及將相關監控的信息以標準的HAR格式導出。 </ul>
- CasperJS :一個開源的導航腳本處理和高級測試工具
- Poltergeist :測試工具Capybara的測試驅動
- Guard::Jasmine :能夠基于Rails實現自動化測試Jasmine的Specs
- GhostDriver :遠程 WebDriver 有線協議的開源實現
- PhantomRobot :PhantomJS機器人測試框架
- Mocha-PhantomJS :JavaScript測試框架Mocha的客戶端 </ul>
PhantomJS 已形成了一個功能非常強大的生態圈內容,相關項目如下:
此外,生態圈還包括基于PhantomJS實現了眾多截屏工具,如 capturejs 、 pageres 、 phantomjs-screenshots 、 manet 、 screenshot-app 等;以及Node.js、Django、PHP、Sinatra等語言的截圖API和 Confess 、 GhostStory 、 Grover 等眾多工具。
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