Running Test in Remote machine with new WebDriver functionality (Grid 2)

Earlier days we can run Selenium test in multiple machine ONLY using Selenium 1 RC (The Project name called Selenium Grid). The biggest downside with Selenium Grid is that, it doesn’t support Webdriver.

But now with Grid 2, both Selenium 1 and Webdriver are supported and we can run test in multiple machines. Grid 2 will allow you to do following

· Scale by distributing tests on several machines ( parallel execution )

· Manage multiple environments from a central point, making it easy to run the tests against a vast combination of browsers / OS.

· Minimize the maintenance time for the grid by allowing you to implement custom hooks to leverage virtual infrastructure for instance.

Steps to run test in multiple machine using Grid 2

Step1 (HUB)

Start the Selenium standalone server with following command

Now the Command prompt window will look like this


If you could see the above screen shot, selenium server once started, it started as a Selenium grid Server.

The hub will automatically start-up using port 4444 by default. To change the default port, you can add the optional parameter -port when you run the command. You can view the status of the hub by opening a browser window and navigating to: http://localhost:4444/grid/console

Step2 (Node)

Now start the node from the same Selenium standalone server package itself in command prompt, since Selenium standalone server package itself includes Hub, Webdrivers and RC

Now the Console looks like this



Now once you go back to your browser and check the link http://localhost:4444/grid/console it will look like this



By default Grid 2 starts 11 browsers : 5 Firefox, 5 Chrome, 1 Internet Explorer. The maximum number of concurrent tests is set to 5 by default.

Running Test using RC and Webdriver

For the Selenium 1 RC nodes, you can continue to use the DefaultSelenium object and pass in the hub information

Similarly for running test using Webdriver, use RemoteWebDriver instead of WebDriver and DesiredCapabilities object to define browser, OS version etc.

Pass the code to RemoteWebdriver object also

The Complete working code will look like this.

That’s it.

Enjoy running Test in Distributed Environment !!


Karthik KK


  1. Akanksha says:

    Hi Kartik,
    HAve u ever implemented the grid with Csharp
    I am a java guy – And using TestNG its very easily possible to implement grid
    Whereas with Csharp I am not able to find the correct tool

  2. swaathi says:

    Hi Karthick,
    I followed the same procedure and my scripts are running on nodes that i registered from my virtual box but they are not executing on remote machine.Any suggestions will be appreciated.

Leave a Reply

Your email address will not be published. Required fields are marked *