Search code examples
firefoxselenium-webdrivergeckodriverfirefox-marionette

Difference between geckodriver and marionette


I don't fully understand the difference between geckodriver and marionette.

  • Can anyone clarify the difference between them?

For example, when I use Selenium WebDriver to control a Firefox browser, I need a geckodriver binary to listen the WebDriver protocol from Selenium.

  • Is Marionette the Firefox extension that actually drives Firefox?

Solution

  • Selenium uses W3C Webdriver protocol to send requests to Geckodriver, which translates them and uses Marionette protocol to send them to Firefox

    Selenium<--(W3C Webdriver)-->Geckodriver<---(Marionette)--->Firefox