What can you do with SlimerJS?

A scriptable browser

SlimerJS allows you to execute JavaScript outside a classical web browser.

In your JavaScript you can use modules, providing access to many APIs:

  • Read and write files.
  • Load a web page and inspect its content.
  • Act on a web page like a user: click on links, fill in form fields etc. You can then inspect the results, to test them or to retrieve them.
  • Listen for network events, to do network monitoring during the load of a webpage.
  • Taking screenshots of a web page.

Your script is also able to execute CommonJS modules, even those written with the CoffeeScript language! Your main script can be written with CoffeeScript as well. SlimerJS recognizes *.coffee files.

Use latest Javascript language features

In your Slimerjs scripts, benefit latest Javascript features implemented in Firefox, including ECMAScript 6 features: iterators, generators, destructured assignement, Map and WeakMap, "let" keyword, arrow functions, promises etc. (except ES6 modules)

An (ex-modern) browser with latest HTML5/JS/CSS enhancements

Since SlimerJS is executed on top of Firefox, it supports all the HTML5 and CSS standards implemented into Firefox 59.

The web page rendering in SlimerJS is strictly identical to the rendering in Firefox 59.

See the download page to know the version of Firefox compatible with the latest release of SlimerJS.

You can go on caniuse.com to see the list of HTML5 features supported by Firefox 59 and you can use in web pages loaded by SlimerJS.

Try SlimerJS for your web projects!

About differences with PhantomJS

APIs of SlimerJS are similar to the APIs of PhantomJS but there are a few differences in their behavior. Some options and a few features are still missing. Feel free to help us to have a full compatibility (see release notes to have the list of missing features).

However, most of scripts for PhantomJS run perfectly well with SlimerJS right now!

SlimerJS provides some enhancements in the API. For example you can use Promises when opening a web page with webpage.open().

Contrary to PhantomJS, SlimerJS is not headless by default: you see windows and it then needs a graphical environment. Except if you are using Firefox 56+, by adding an --headless flag, or for older version of Firefox on linux, you can use a tool like xvfb to have this headless feature and to execute SlimerJS on Linux boxes that do not have xorg installed. See the documentation about the headless mode.

And some deprecated features...

  • Even if the Mozilla Add-on SDK has been removed from Firefox 57, some of its modules are available and you can import them into your code in the same way as CommonJS modules.
  • Flash is a dead technology, but SlimerJS is able to load Flash content if the Flash plugin is installed and if the version of Firefox is allowing it. (though the plugin's rendering cannot be seen when taking screenshots).