If you were also stuck with Firefox 47 and Selenium 2.53 issue then this is right time to start experimenting with Marionette.
But Before delving into Marionette, let’s see what a web browser engine is. Web browser engine is a program which renders markup content (i.e. html, xml, images etc) and the format information (i.e. css, xsl etc). It is also known as layout or rendering engine. In simple words, web browser engine is responsible for how you are able to see a web page in a browser, email client or e-book reader. Some of the most popular web browser engines are -
- Webkit which is used in safari and chrome browsers
- Gecko used in Firefox, Thunderbird email client
Marionette is WebDriver version for Mozilla’s Gecko engine. It can control both the browser (menu, function etc) also known as chrome (don’t confuse with google chrome browser ;-)) and the content within the browser (something which is of immense value for test automation).
Marionette also follows the client server architecture of other web drivers. Client sends commands to server and server executes them Gecko engine. Marionette ships with Firefox.
Using Marionette -
- Download Marionette executable from - GitHub release page
- Set the path
System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver");
- And start the Marionette driver
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
capabilities.setCapability("marionette", true);
WebDriver driver = new FirefoxDriver(capabilities);
That’s all and now you are ready to drive firefox using Marionette driver
If you are using STF then you just have to specify browser as *marionette and that’s all. Beware the Marionette is yet new and you may encountered unexpected failures during test run.
A note from automated tester about Marionette future versions -
Marionette will be turned on by default from Selenium 3, which is currently being worked on by the Selenium community. Ideally when Firefox 52 comes around you will just update to Selenium 3 and, fingers crossed, all works as planned.