Python client for Marionette
Switch branches/tags
Nothing to show
Pull request Compare This branch is 22 commits ahead of k0s:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Marionette Client

Marionette is a Mozilla project to enable remote automation in Gecko-based projects, including desktop Firefox, mobile Firefox, and Boot-to-Gecko.

It utilizes the remote-debugger inside Gecko for the transport layer of the Marionette server. The commands the Marionette server will eventually implement are based on Selenium's JSON Wire Protocol, although not all commands are presently implemented, and additional commands will likely be added.

Package Files

  • This is the Marionette socket client; it speaks the same socket protocol as the Gecko remote debugger.
  • The Marionette client. This uses to communicate with a server that speaks the Gecko remote debugger protocol.
  • Acts as a remote driver for Selenium test runners. This code translates the Selenium JSON Wire Protocol to the Marionette JSON Protocol. This allows Selenium tests to utilize Marionette.
  • A socket server which mimics the remote debugger in Gecko, and can be used to test pieces of the Marionette client.
  • Tests the Marionette JSON Protocol by using
  • Tests the Selenium proxy by using


No special requirements, unless you're using the Selenium proxy, in which case you'll need to install the Selenium Python bindings using:

pip install selenium

Writing Tests Using the Marionette Client

Tests can be written using the Marionette client directly, or by writing Selenium tests and using the Selenium proxy. See for an example of the former and for an example of the latter.

Although uses the Python binding for Selenium, any of the Selenium webdriver clients should be usable with Marionette.