---
title: Set up your own Selenium Server | TestingBot Blog
description: |-
  In this article we'll show you how to set up your own Selenium Grid to run tests on various versions of Firefox.


  If you are new to setting up you...
source_url:
  html: https://testingbot.com/blog/2016/09/21/how-to-set-up-your-own-selenium-server-and-test-on-different-firefox-versions
  md: https://testingbot.com/blog/2016/09/21/how-to-set-up-your-own-selenium-server-and-test-on-different-firefox-versions.md
---

# Building your own Selenium Server

By [Jochen D.](https://testingbot.com/about/jochen-d)2016-09-21

 Share on Facebook 

 Share on Twitter 

 Post on Reddit 

 Share link 

In this article we'll show you how to set up your own Selenium Grid to run tests on various versions of Firefox.

If you are new to setting up your own Selenium Grid, we recommend you first read our other blogpost: [Setting up and Maintaining your own Selenium Grid](https://testingbot.com/blog/2016/02/17/setting-up-and-maintaining-your-own-selenium-grid).

## 1. Download the Firefox versions you want to run tests on

The first step is to download the different versions of Firefox you want to run WebDriver tests on. Mozilla makes this very easy: you can use their FTP website to download the versions you want: [https://ftp.mozilla.org/pub/firefox/releases/](https://ftp.mozilla.org/pub/firefox/releases/).

Once downloaded, extract and install these versions on the machine that will run your Selenium Node. The clean solution is to extract and install these to a separate folder, for example `C:\firefox\45` on Windows or `/Users/Shared/firefox/45` (where 45 is the version number).

## 2. Register the different Firefox versions on your Selenium Grid

You need to indicate to your Selenium Hub (which is the server connecting the nodes to a Selenium Grid) which versions of Firefox your node supports.

This way, when you later run a test asking for a specific version of Firefox, the Grid knows what machine in the Grid is provisioned with the version you're requesting.

Simply edit your `node.json file` (which the Selenium node uses to advertise its available browser combinations via `java -jar selenium.jar -role node -hub http://hubHost:4444/grid/register -nodeConfig node.json`)

`node.json` contains:

```json
{
  "capabilities":
  [
    {
      "browserName": "firefox",
      "version": "45",
      "platform": "WINDOWS",
      "maxInstances": 1
    },
    {
      "browserName": "firefox",
      "version": "46",
      "platform": "WINDOWS",
      "maxInstances": 1
    }
  ],
  "configuration":
  {
    "nodeTimeout":120,
    "port":5555,
    "hubPort":4444,
    "hubHost":"localhost",
    "nodePolling":2000,
    "registerCycle":10000,
    "register":true,
    "cleanUpCycle":2000,
    "timeout":30000,
    "maxSession":1,
  }
}
```

With this example, we'll notify the hub (which is running on hubHost port 4444) that this node has both Firefox 45 and Firefox 46 available for testing.

## 3. Running a test on a specific Firefox version

Once you registered a node to the Selenium hub (grid) with different Firefox versions, you can create tests that target different Firefox versions:

```java
import org.openqa.selenium.By;
import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

import java.net.URL;

public class JavaSample {

  public static final String URL = "http://key:secret@hub.testingbot.com/wd/hub";

  public static void main(String[] args) throws Exception {

    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setCapability("browserName", "Firefox");
    caps.setCapability("version", "46");
    caps.setCapability("platform", "WIN10");
    caps.setCapability("name", "My First Test");

    WebDriver driver = new RemoteWebDriver(new URL(URL), caps);
    driver.get("http://www.google.com/ncr");
    WebElement element = driver.findElement(By.name("q"));

    element.sendKeys("TestingBot");
    element.submit();

    System.out.println(driver.getTitle());
    driver.quit();

  }
}
```

## 4. Take advantage of TestingBot's large grid

Setting up a grid with all kinds of browsers, browser versions and platform combinations takes up a lot of time! Maintaining the grid: installing updates, fixing issues, debug network problems, speeding up VMs takes even more time...

Take advantage of the TestingBot Selenium Grid which has all browsers and versions installed, on a wide range of platforms. We offer all browser versions, ranging from Firefox 3 to Firefox dev/beta, Chrome, Safari, IE, Edge and many [more browser combinations](https://testingbot.com/support/web-automate/browsers).

[← Previous post Selenium 3 Beta Testing with TestingBot](https://testingbot.com/blog/2016/09/07/selenium-3-beta-testing-with-testingbot) [Next post → Free Automated Testing for Open Source Projects](https://testingbot.com/blog/2016/09/23/free-automated-testing-for-open-source-projects)

## Sidebar

### TestingBot Cloud Testing

Run automated, manual and visual tests on remote browsers and devices. Sign up for a free trial.

[Free Trial](https://testingbot.com/users/sign_up)

### Latest articles

[![Announcing AI Test Insights](https://testingbot.com/assets/blog/2026/ai-insights.jpg)](https://testingbot.com/blog/ai-test-insights)

#### Announcing AI Test Insights

Use AI Insights to quickly discover why an automated test...

[Read: Announcing AI Test Insights](https://testingbot.com/blog/ai-test-insights)

[![Selenium vs Playwright 2026](https://testingbot.com/assets/blog/2026/selenium-vs-playwright-2026.jpg)](https://testingbot.com/blog/selenium-vs-playwright)

#### Selenium vs Playwright 2026

Comparing Selenium vs Playwright - which is the best test...

[Read: Selenium vs Playwright 2026](https://testingbot.com/blog/selenium-vs-playwright)

[![Maestro Physical Device Testing](https://testingbot.com/assets/blog/2026/maestro-physical.jpg)](https://testingbot.com/blog/maestro-physical-device-testing)

#### Maestro Physical Device Testing

Maestro testing in parallel on physical Android and iOS d...

[Read: Maestro Physical Device Testing](https://testingbot.com/blog/maestro-physical-device-testing)

## Related Articles

[![Selenium vs Playwright 2026](https://testingbot.com/assets/blog/2026/selenium-vs-playwright-2026.jpg)](https://testingbot.com/blog/selenium-vs-playwright "Selenium vs Playwright 2026")

### [Selenium vs Playwright 2026](https://testingbot.com/blog/selenium-vs-playwright)

Comparing Selenium vs Playwright - which is the best test framework for your usecase?

[Read article →](https://testingbot.com/blog/selenium-vs-playwright)

[![Selenium 20th birthday](https://testingbot.com/assets/blog/2024/selenium20.webp)](https://testingbot.com/blog/selenium-20-years "Selenium 20th birthday")

### [Selenium 20th birthday](https://testingbot.com/blog/selenium-20-years)

Celebrate Selenium's 20th birthday. An overview of the years.

[Read article →](https://testingbot.com/blog/selenium-20-years)

[![Selenium WebDriver BiDi](https://testingbot.com/assets/blog/2024/bidi.webp)](https://testingbot.com/blog/webdriver-bidi "Selenium WebDriver BiDi")

### [Selenium WebDriver BiDi](https://testingbot.com/blog/webdriver-bidi)

WebDriver BiDi support is now available on TestingBot. Learn how to use this exciting new improvement with your Selenium tests.

[Read article →](https://testingbot.com/blog/webdriver-bidi)

[![Playwright Testing on TestingBot](https://testingbot.com/assets/blog/2023/playwright-testing.jpg)](https://testingbot.com/blog/playwright-testing-introduction "Playwright Testing on TestingBot")

### [Playwright Testing on TestingBot](https://testingbot.com/blog/playwright-testing-introduction)

Learn how Playwright can run your automated tests on a variety of browsers, local or remote browsers on TestingBot.

[Read article →](https://testingbot.com/blog/playwright-testing-introduction)

## More by Jochen D.

[![Announcing AI Test Insights](https://testingbot.com/assets/blog/2026/ai-insights.jpg)](https://testingbot.com/blog/ai-test-insights "Announcing AI Test Insights")
### [Announcing AI Test Insights](https://testingbot.com/blog/ai-test-insights)

Use AI Insights to quickly discover why an automated test failed.

[![Maestro Physical Device Testing](https://testingbot.com/assets/blog/2026/maestro-physical.jpg)](https://testingbot.com/blog/maestro-physical-device-testing "Maestro Physical Device Testing")
### [Maestro Physical Device Testing](https://testingbot.com/blog/maestro-physical-device-testing)

Maestro testing in parallel on physical Android and iOS devices.

[![tvOS Physical Device Testing](https://testingbot.com/assets/blog/2025/appletv.jpg)](https://testingbot.com/blog/tvos-automated-testing "tvOS Physical Device Testing")
### [tvOS Physical Device Testing](https://testingbot.com/blog/tvos-automated-testing)

Run automated tvOS tests on physical AppleTV devices.

[See all posts by Jochen D. →](https://testingbot.com/about/jochen-d)

## Ready to start testing?
[Start a free trial](https://testingbot.com/users/sign_up)
