Marionette

What is Marionette?

Marionette is an automation driver.  It can remotely drive either the UI or the internal JavaScript of a program built on the Gecko platform, such as Firefox or Firefox OS. Marionette runs as a server on your test machine, allowing you to connect to that server and remotely drive tests and send commands. Its goal is to replicate what Selenium does for the browser: to enable the tester to have the ability to send commands to a remote test machine.

Marionette shares much of the same API as Selenium/WebDriver, and makes writing tests easy. You have the API to drive user actions like page navigation and element clicking, but also the ability to execute arbitrary JavaScript scripts, allowing for a greater variety of tests.

When would I use it?

If you want to utilize user interaction with chrome or content, Marionette is the tool you're looking for, but it is also capable of doing much more! Marionette lives in both the chrome and content space of a gecko process, so it is capable of running commands in any of these spaces.

This means you can run any JS script in chrome or in content. This is a powerful feature, enabling a user to do anything from inspecting the content DOM of a Firefox instance running in a remote machine to executing a script that changes profile preferences in privileged chrome space.

Using Marionette

Marionette combines a gecko component (the Marionette server) with an outside component (the Marionette client), which drives the tests.  To use Marionette you must get a Marionette-enabled build, and then download a Marionette client or use the in-tree client.

Bugs

Please file any bugs you may find!

You can view a list of current bugs to see if your problem is already being addressed.

Questions/Comments/Concerns

Feel free to drop us a line over at the #ateam channel!

Contributing

If you're interested in contributing, please follow this setup guide!

Subpages (temporary section)

This section is here to help with copy-editing and organization work that is ongoing, and will be removed sometime soon once that work is done.

Document Tags and Contributors

Contributors to this page: jgriffin, Sheppy, fscholz, automatedtester, jhammink, gaye, mdas, Ms2ger
Last updated by: Ms2ger,