Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between geckodriver and marionette [duplicate]

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?
like image 989
Boni García Avatar asked Mar 22 '17 15:03

Boni García


People also ask

What is Geckodriver used for?

GeckoDriver is a web browser engine which is used in many applications developed by Mozilla Foundation and the Mozilla Corporation. GeckoDriver is the link between your tests in Selenium and the Firefox browser. GeckoDriver is a proxy for using W3C WebDriver-compatible clients to interact with Gecko-based browsers.

What is marionette port?

marionette.Defines the port on which the Marionette server will listen. Defaults to port 2828. This can be set to 0 to have the system atomically allocate a free port, which can be useful when running multiple Marionette servers on the same system.

Where do you put Geckodriver?

Download the webdriver by clicking on the link 5. Right click on the downloaded file and unzip the file. Copy and paste the file to somewhere in your python directory. e.g. If I installed Python in C:\Python\Python37 I would paste the file in there so gecko would be located in C:\Python\Python37\geckodriver-v0.

What is marionette Firefox?

Marionette is an automation driver for Mozilla's Gecko engine. It can remotely control either the UI or the internal JavaScript of a Gecko platform, such as Firefox.


1 Answers

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

like image 152
Danio Avatar answered Oct 11 '22 03:10

Danio