firefoxselenium-webdrivergeckodriverfirefox-marionette

Difference between geckodriver and marionette


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

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


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