Related Projects
In the Family
The following projects are based on PhantomJS. They provide extra functionalities.
-
Casper.js is useful to build scripted navigation and testing.
-
Chutzpah is a JavaScript test runner which runs from Visual Studio, the command line, TeamCity or your favorite CI server. It can run directly on JavaScript, CoffeeScript and TypeScript files and has built in code coverage support.
-
Ghostbuster simplifies the testing setup with more convenient wrappers.
-
GhostDriver implements Remote WebDriver Wire protocol for PhantomJS. Although it is developed separately, it has been a part of PhantomJS core since PhantomJS 1.8.
-
GhostJS simplifies test logic with ES7 async functions and removes the need for callbacks.
-
Lotte adds jQuery-like methods, chaining, and more assertion logic.
-
PhearJS a supervisor and API for PhantomJS written in NodeJS.
- Poltergeist is a driver for Capybara so you can run your Capybara tests using PhantomJS.
-
GastonJS is a driver for PHP Mink so you can run your Behat or Mink tests using PhantomJS.
-
pjscrape combines PhantomJS with jQuery as a command-line scraping tool.
-
WebSpecter is a BDD-style acceptance test framework for web applications.
-
conjure lets you write CasperJS tests in BDD-style modules and run them with variable concurrency. Also provides additional stack tracing, helpers and module bootstrapping.
- PhantomJS Google Charts lets you capture the svg data for charts produced by Google’s JSAPI and use it server side. Examples would be to inject the charts into a PDF or to convert it to a JPG.
Screenshot Utilities
Several page capture projects utilizing PhantomJS:
- command-line
- capturejs (Node.js)
- DeckTape a CLI to capture screenshots and export high-quality PDF documents of slides from any HTML presentation frameworks like impress.js, reveal.js, …
- pageres - get screenshots of website(s) in few different resolutions to make sure they are responsive (Node.js)
- phantomjs-screenshots, a system for running screenshot tasks defined in JSON format (Node.js)
- web-service
- manet (Node.js)
- screenshot-app (Node.js)
- screenshot-as-a-service (Node.js)
- screenshot-service a pure phantomJS project to capture screenshot of any page with various configuration options
- screenshot (Dancer)
- screenshot-webservice (Play2)
- pyshotx a screenshot server using multiple phantomJS processes and queues (Gevent, Redis)
- htmlshots a screenshot server based on the WebServer module that accepts both URLs and HTML file uploads
- API
- Node.js:
- node-webshot
- pageres, a command-line tool and Node.js module to get screenshots of website(s) in few different resolutions to make sure they are responsive (uses Node.js)
- Django
- PHP
- PHP Screen a PHP interface to Phantom JS to make website screenshots.
- Sinatra
- grabshot, a simple Sinatra-based API to take screenshots and respond asynchronously to a provided callback URL.
- Node.js:
Tools
-
basset command-line website performance sniffer.
-
Compass Magick is a dynamic image generation for Compass using (among others) PhantomJS.
-
Confess is small script library that uses PhantomJS to headlessly analyze web pages for the purposes of creating a cache manifest file.
-
GhostStory is a collection of Cucumber steps for automated CSS testing with SpookyJS, CasperJS, PhantomJS, PhantomCSS and Node.JS.
-
Grover is a wrapper to automatically run YUI Test based tests.
-
Grunt is a task-based command line build tool for JavaScript projects using PhantomJS for unit test automation.
-
Guard PhantomJS automatically runs PhantomJS using Guard.
-
phridge provides an easy way to run scripts in PhantomJS and return results back to node.js.
-
phantomjs-node provides PhantomJS bridge for Node.js applications.
-
node-phantom is a bridge between PhantomJS and Node.js.
-
phantom-proxy provides a proxy interface for PhantomJS which runs inside of node.
-
phantomas is a web-performance metrics and hints generation tool.
-
PhantomCSS enables automated visual regression testing.
-
PhantomFlow provides a syntax for describing user flows as tests which can then be visualized as an interactive tree graph. Built on CasperJS, integrates with PhantomCSS and uses D3.js for visualization.
-
phantomjs-installer provides a PHP Composer package which installs the PhantomJS binary (Linux, Windows, Mac) into the /bin folder of your project.
-
phantomjs-maven-plugin is a Maven plugin with the primary purpose of installing the PhantomJS binary and providing a property containing the location of the binary for use within a build. It also provides a goal for executing PhantomJS scripts.
-
“phantomjs” is a Node.js module to download/install PhantomJS and provide its executable path (and that’s all). Used by Grunt in grunt-lib-phantomjs for higher-level use in grunt-contrib-qunit, etc.
-
PhantomLint uses PhantomJS to run JSLint on JavaScript application code.
-
PhantomXHR isolates UI from server API for fast automated UI testing.
-
PHP PhantomJs provides a PHP interface for PhantomJS.
-
shortcut.io uses PhantomJS to generate the screenshot of the bookmarked web sites.
-
Slippy uses PhantomJS to convert HTML presentations into PDFs that can be e.g. uploaded to SlideShare.
-
SpookyJS drives CasperJS from Node.js over HTTP or stdio.
-
Yeoman is a robust and opinionated client-side stack, comprised of tools and frameworks that can help developers quickly build beautiful web applications. It uses PhantomJS (via Grunt) as a basis for headless tests.