Skip to main content

Marionette Web driver and STF

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 -


If you are not using STF then you should follow these steps -


  • Set the path
System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver");


  • And start the Marionette driver
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
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.
Found a bug in Marionette? Check list of existing bugs before filing a new bug.
Found a bug in STF. Please report it on GitHub.


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.

Grab the latest version of STF and start experimenting with Marionette :)

Popular posts from this blog

Appium and android mobile app automation

Next appium and Android mobile app automation video tutoria l is live. If you are new to appium then please check - appium-tutorial This video tutorial covers - Start vysor (Just for this session and not mobile automation :)) Start appium and start appium inspector Desired Capabilities platformName - Android deviceName - L2N0219828001013 (as seen on "adb devices") Saved Capability Sets Start Session Scan app elements using appium inspector Get appPackage and appActivity using "APK info" app Install "APK info" app and open app whose appPackage and appActivity are required i.e. calculator Check top section of app icon com.android.calculator2 is app package com.android.calculator2.Calculator is app activity testng.xml file settings for running Android app tests Test details com.seleniumtests.tests.mobile.AndroidAppTest and CalculatorScreen class View beautiful STF test report  

Return only first or last element from webelements collection

Note: If you are new to java and selenium then start with selenium java training videos .     We often come across situation when there are multiple elements on a page and we probably like to exercise only a few of them using selenium webdriver. May be just first and last element. For example on a search result page we may like to click on only first and last link and not all. This is when Iterables API comes handy. (By the way I am assuming that you have already completed watching selenium training videos :)). Once we have collection of web element then we can use Iterables to get only first or last element as following - Consider that we fetch collection of element as - List< WebElement > webElements = getDriver().findElements(By. id ( "htmlID" ));   Now we can get the first web element from this collection as -  WebElement firstElement = Iterables. getFirst (webElements,  getDriver().findElement(By. id ( "defaultElement" )));   Herein second

Using chrome console to test xPath and css selectors

Note: If you are new to java and selenium then start with selenium java training videos .       Since the advent of selenium there have been many plugin to test xPath / css selectors but you don’t need any of them if you have chrome browser. Using Chrome console you can test both xPath and css selectors. Launch website to be tested in chrome browser and hit F-12 and you would see chrome console opened in lower pane of application - Hit escape key and console would open another pane to write element locators - And now you can start writing xPath or css selectors in chrome console and test them - The syntax for writing css id - $$(“ ”) And hit the enter key. If your expression is right then html snippet of the application element corresponding to the css selector would be displayed - If you mouse over the html snippet in chrome console then it would highlight the corresponding element in application - If you want to clean console of previously wri