WebDriver is a remote control interface that enables introspection and control of user agents. It provides a platform- and language-neutral wire protocol as a way for out-of-process programs to remotely instruct the behavior of web browsers.
This is the project page for the WebDriver project at Mozilla. If you’re looking for information about WebDriver itself you will find that on MDN.
The implementation of WebDriver in Firefox consists of different layers with each of them handled by it's own component.
Marionette is a remote protocol that lets out-of-process programs communicate with, instrument, and control Gecko-based browsers. It implements the WebDriver specification, which is then made available via a custom socket protocol to geckodriver.
geckodriver is a proxy for using W3C WebDriver-compatible clients to interact with Gecko-based browsers.
This program provides the HTTP API described by the WebDriver specification to communicate with Gecko browsers. It translates calls into the Marionette compatible remote protocol by acting as a proxy between the local- and remote ends.
The Firefox Remote Protocol is a low-level debugging interface you can use to inspect the state and control execution of documents running in web content, instrument the browser in interesting ways, simulate user interaction for automation purposes, and for subscribing to events in the browser such as network- or console logs.
It's primary purpose is the implementation of the WebDriver BiDi specification. But it also complements the existing Firefox Developer Tools Remote Debugging Protocol (RDP) by implementing a subset of the Chrome DevTools Protocol (CDP).
- Mailing list
- email@example.com (subscribe, archive)
- Real-time chat
- The communication channel for the team is Matrix/#interop.
- Bug tracking
- WebDriver (Marionette) in Bugzilla
- WebDriver BiDi in Bugzilla
- geckodriver in Bugzilla
- geckodriver on GitHub
- Rust port of mozbase
- Jan Odvarko (honza), manager
- Henrik Skupin (whimboo), engineer
- Julian Descottes (jdescottes), engineer
- James Graham (jgraham), engineer (WebDriver Spec)
The team has a public meetings on Mondays at 2:30 pm UTC.
- See WebDriver/Meetings for more details and minutes