---
title: Selenium Cloud Testing | Cross-Browser Selenium Grid
description: Run Selenium WebDriver tests on 6100+ real browsers and physical iOS
  & Android devices. Parallel execution, live debugging, CI/CD ready.
source_url:
  html: https://testingbot.com/features/automation/selenium
  md: https://testingbot.com/features/automation/selenium.md
---

Selenium WebDriver 
# Selenium Cloud Automation

Run your Selenium WebDriver tests on 6100+ real browsers and physical iOS & Android devices. Massive parallelism, video & log artifacts, and battle-tested infrastructure with a 99.9% uptime SLA.

Comparing frameworks? See [Playwright vs Selenium](https://testingbot.com/playwright-vs-selenium), [Cypress vs Selenium](https://testingbot.com/cypress-vs-selenium) or [Selenium vs Puppeteer](https://testingbot.com/selenium-vs-puppeteer).

[Start free](https://testingbot.com/users/sign_up) [Request a demo](https://testingbot.com/demo)

- **Browsers & devices:** 6100+
- **Selenium versions:** All
- **Uptime SLA:** 99.9%

_Selenium tests running on Chrome, Firefox, Safari, Edge, Opera, Samsung, iOS and Android via TestingBot's cloud hub_

Trusted by some of the world's most innovative companies

 5-line setup 
## Point your existing tests at our hub

One URL change is all it takes. Reuse your current Selenium WebDriver code, run it on our cloud, and pick any browser, OS or device through capabilities.

 hub.testingbot.com Copy

 JavaScript Python Java Ruby C# PHP 

```javascript
// Run a Selenium test on the TestingBot grid
const wd = require('selenium-webdriver');

const driver = await new wd.Builder()
  .usingServer('https://hub.testingbot.com/wd/hub')
  .withCapabilities({
    'tb:options': { name: 'Checkout flow' },
    browserName: 'chrome',
    browserVersion: 'latest',
    platformName: 'Windows 11'
  })
  .build();

await driver.get('https://example.com');
await driver.quit();
```

```python
# Run a Selenium test on the TestingBot grid
from selenium import webdriver

options = webdriver.ChromeOptions()
options.set_capability('tb:options', {'name': 'Checkout flow'})
options.set_capability('browserVersion', 'latest')
options.set_capability('platformName', 'Windows 11')

driver = webdriver.Remote(
    command_executor='https://hub.testingbot.com/wd/hub',
    options=options
)

driver.get('https://example.com')
driver.quit()
```

```java
// Run a Selenium test on the TestingBot grid
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("browserName", "chrome");
caps.setCapability("browserVersion", "latest");
caps.setCapability("platformName", "Windows 11");

WebDriver driver = new RemoteWebDriver(
    new URL("https://hub.testingbot.com/wd/hub"),
    caps
);

driver.get("https://example.com");
driver.quit();
```

```ruby
# Run a Selenium test on the TestingBot grid
require 'selenium-webdriver'

caps = Selenium::WebDriver::Remote::Capabilities.chrome(
  browserVersion: 'latest',
  platformName: 'Windows 11',
  'tb:options' => { name: 'Checkout flow' }
)

driver = Selenium::WebDriver.for(:remote,
  url: 'https://hub.testingbot.com/wd/hub',
  capabilities: caps
)

driver.get 'https://example.com'
driver.quit
```

```csharp
// Run a Selenium test on the TestingBot grid
var options = new ChromeOptions();
options.AddAdditionalOption("browserVersion", "latest");
options.AddAdditionalOption("platformName", "Windows 11");

IWebDriver driver = new RemoteWebDriver(
    new Uri("https://hub.testingbot.com/wd/hub"),
    options
);

driver.Navigate().GoToUrl("https://example.com");
driver.Quit();
```

```php
// Run a Selenium test on the TestingBot grid
$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability('browserVersion', 'latest');
$capabilities->setCapability('platformName', 'Windows 11');

$driver = RemoteWebDriver::create(
    'https://hub.testingbot.com/wd/hub',
    $capabilities
);

$driver->get('https://example.com');
$driver->quit();
```

Connected · [Dokumentation anzeigen](https://testingbot.com/support/web-automate/selenium/nodejs) [Dokumentation anzeigen](https://testingbot.com/support/web-automate/selenium/python) [Dokumentation anzeigen](https://testingbot.com/support/web-automate/selenium/java) [Dokumentation anzeigen](https://testingbot.com/support/web-automate/selenium/ruby) [Dokumentation anzeigen](https://testingbot.com/support/web-automate/selenium/csharp) [Dokumentation anzeigen](https://testingbot.com/support/web-automate/selenium/php) 

 ![Rich test results out of the box](https://testingbot.com/assets/features/test-results-315382c39a67ad52167d2a4fd78570c99aea3e0ec386c17e82265851e93cb7b3.png)

 Test Results 
## Rich test results out of the box

Every Selenium session produces a full HD video, step-by-step command log, browser & Selenium logs and screenshots.

Mark sessions as passed or failed from your test code, fetch artifacts via our [REST API](https://testingbot.com/support/api), and ship results back to Jira, Slack or your CI of choice.

Every Selenium session is fully customizable, including:

- All Selenium versions supported (3.x, 4.x, BiDi)
- Custom screen resolution
- Custom timezone
- Change geolocation
- Browser startup flags and [many more options](https://testingbot.com/support/web-automate/selenium/test-options)

 Languages & frameworks 
## Selenium integrations for every stack

TestingBot integrates with every major Selenium binding and test framework. Drop in your existing tests, no rewrites needed.

- ### [Java](https://testingbot.com/support/web-automate/selenium/java)

  - [JUnit](https://testingbot.com/support/web-automate/selenium/java/junit)
  - [Parallel JUnit](https://testingbot.com/support/web-automate/selenium/java/parallel-junit)
  - [TestNG](https://testingbot.com/support/web-automate/selenium/java/testng)
  - [Selenide](https://testingbot.com/support/web-automate/selenium/java/selenide)

- ### [Python](https://testingbot.com/support/web-automate/selenium/python)

  - [PyTest](https://testingbot.com/support/web-automate/selenium/python/pytest)
  - [PyUnit](https://testingbot.com/support/web-automate/selenium/python/pyunit)
  - [Behave](https://testingbot.com/support/web-automate/selenium/python/behave)
  - [Helium](https://testingbot.com/support/web-automate/selenium/python/helium)

- ### [JavaScript](https://testingbot.com/support/web-automate/selenium/nodejs)

  - [WebDriverIO](https://testingbot.com/support/web-automate/selenium/nodejs/webdriverio)
  - [Nightwatch](https://testingbot.com/support/web-automate/selenium/nodejs/nightwatch)
  - [Protractor](https://testingbot.com/support/web-automate/selenium/nodejs/protractor)
  - [TestCafe](https://testingbot.com/support/web-automate/selenium/nodejs/testcafe)

- ### [Ruby](https://testingbot.com/support/web-automate/selenium/ruby)

  - [RSpec](https://testingbot.com/support/web-automate/selenium/ruby/rspec)
  - [Cucumber](https://testingbot.com/support/web-automate/selenium/ruby/cucumber)
  - [Minitest](https://testingbot.com/support/web-automate/selenium/ruby/minitest)
  - [Test::Unit](https://testingbot.com/support/web-automate/selenium/ruby/testunit)

- ### [C#](https://testingbot.com/support/web-automate/selenium/csharp)

  - [NUnit](https://testingbot.com/support/web-automate/selenium/csharp/nunit)
  - [MSTest](https://testingbot.com/support/web-automate/selenium/csharp/mstest)
  - [xUnit](https://testingbot.com/support/web-automate/selenium/csharp/xunit)
  - [SpecFlow](https://testingbot.com/support/web-automate/selenium/csharp/specflow)

- ### [PHP](https://testingbot.com/support/web-automate/selenium/php)

  - [PHPUnit](https://testingbot.com/support/web-automate/selenium/php/phpunit)
  - [Codeception](https://testingbot.com/support/web-automate/selenium/php/codeception)
  - [Behat](https://testingbot.com/support/web-automate/selenium/php/behat-mink)
  - [SimpleTest](https://testingbot.com/support/web-automate/selenium/php/simpletest)

Looking to run tests without writing code? Record tests with [Selenium IDE](https://testingbot.com/support/web-automate/codeless-automation/add-test) and upload them to our Codeless Automation for scheduled execution.

 Massive parallelism 
## Cut suite time from hours to minutes

Fan out your Selenium suite across hundreds of single-use VMs running in parallel. Same test code, a fraction of the wall-clock time, all on Windows, Linux and macOS optimised for speed and stability.

- Up to 100 concurrent Selenium sessions
- No queue, no warm-up. Sessions start in seconds
- Auto-retry and intelligent test sharding

[Start free](https://testingbot.com/users/sign_up)

 ![Cut suite time from hours to minutes](https://testingbot.com/assets/features/selenium/parallel-0229d698e59a8a6b92fe50344a08634624f018331ecf8a849ef83cfb35e635a5.png)

Live exit nodes
10+ countries

United States

United Kingdom

Germany

France

Spain

Belgium

Australia

China

Japan

 Geolocation testing 
## Test from 10+ countries

Run Selenium tests from real exit nodes around the world. Verify **geo-targeting** , **geo-blocking** and **localisation** from Australia, Belgium, the United Kingdom, the United States, Germany, France, Spain, China and more.

 Secure infrastructure 
## Real machines. Single-use. Zero leaks.

Each Selenium session runs in a brand-new, single-use virtual machine on a real operating system. The VM is destroyed the moment the test ends, nothing is reused, nothing leaks across customers.

SOC 2-aligned, GDPR-compliant, with SAML SSO and audit logs for teams.

- Single-use VMs, wiped after every session
- GDPR-compliant, EU data residency available
- SAML SSO, audit logs and SCIM provisioning

[Visit TestingBot Trust Center](https://trust.testingbot.com/)

1. 1

Test connects to `hub.testingbot.com`

A pristine VM is provisioned in seconds, just for your session.

2. 2

Your Selenium commands run on real hardware

Real Windows, macOS or Linux — never simulated, never shared.

3. 3

VM destroyed the moment your test ends

Cookies, files, browser state — all wiped. Nothing is ever reused.

 Continuous integration 
## Plug into your CI/CD in minutes

TestingBot integrates with every major CI/CD tool. Trigger Selenium suites on every commit and stream results back into your build dashboards.

 ![Jenkins](https://testingbot.com/assets/integrations/jenkins-e586a1c4af833e4c8d38d7b392a4e84bd193f30cae9cf8c9f198a58ec943a1ff.webp)

### [Jenkins](https://testingbot.com/support/integrations/ci-cd/jenkins)

 ![Bamboo](https://testingbot.com/assets/integrations/bamboo-c8fe09a3cb0b74d6055e3aa6607d77720bfe29ff487b8e3cf825138adf634346.svg)

### [Bamboo](https://testingbot.com/support/integrations/ci-cd/bamboo)

 ![TeamCity](https://testingbot.com/assets/integrations/teamcity-7e75cdb835903a4983ad276c41d95e569ceac5be486e96ec1f955029ce5bb319.svg)

### [TeamCity](https://testingbot.com/support/integrations/ci-cd/teamcity)

 ![CircleCI](https://testingbot.com/assets/integrations/circleci-ede029654ff39b60342e4a5bba8fc9a3a49305cc38bda215b7cf8d07e85e0543.webp)

### [CircleCI](https://testingbot.com/support/integrations/ci-cd/circleci)

 ![GitLab CI](https://testingbot.com/assets/integrations/gitlab-e4c0b6db07d07bc0a400f5606e258f4dc8a51b778e97bbfa51d1d531f3cb049a.webp)

### [GitLab CI](https://testingbot.com/support/integrations/ci-cd/gitlab)

 ![GitHub](https://testingbot.com/assets/integrations/github-actions-8436242ad9e15381f84f1a98a10dddce15611087f121d6305782e211942b7842.webp)

### [GitHub](https://testingbot.com/support/integrations/ci-cd/github-actions)

 Mobile Selenium 
## Mobile web Selenium on real devices

Drive Mobile Safari on real iPhones and iPads, and Chrome on real Android devices using the same Selenium WebDriver protocol. Real hardware, real sensors, accurate results.

[View all devices](https://testingbot.com/support/app-automate/devices)

 ![Test online on iPhone 17 Pro](https://testingbot.com/assets/devices/160h/44-6b4402c6996d9b1620879bb1123c40a6b36abb064e65dca0a1b3f05286779e9c.webp)

iPhone 17 Pro

 ![Test online on iPhone 17 Pro Max](https://testingbot.com/assets/devices/160h/43-59d7e30684332ed4bf25567cbc09ca942eac46d925ccde8352d3e85812480f7d.webp)

iPhone 17 Pro Max

 ![Test online on iPhone 16 Pro](https://testingbot.com/assets/devices/160h/42-de3704079345026847b739a5b1cf5332595904e54ede66abd988a76fb1e6593c.webp)

iPhone 16 Pro

 ![Test online on iPad (9th generation)](https://testingbot.com/assets/devices/160h/41-70f7d18afde7620063a49a76cbfd088f8b59c742f3a5f4dd4a513dd6ec5c676c.webp)

iPad (9th generation)

 ![Test online on Galaxy S26](https://testingbot.com/assets/devices/160h/40-e917ed08e15b5941fed75855ac457dd1df46b471a2020f081c4d70cefb68f4e8.webp)

Galaxy S26

 ![Test online on Huawei P40](https://testingbot.com/assets/devices/160h/39-32a788c7e66a3da1c88eaaefefd37381f729e510f096b43906968b6907c44c57.webp)

Huawei P40

 Secure Tunnel 
## Test internal & staging apps securely

Use our [secure tunnel](https://testingbot.com/support/tunnel) to run Selenium tests against firewalled staging sites, internal dashboards or apps still on localhost.

Encrypted end-to-end, no inbound firewall rules required, and built-in support for popular CI providers.

 ![TestingBot secure tunnel for Selenium](https://testingbot.com/assets/features/tunnel-diagram-poster-8c25e19e6fe4f7276a46a96b31a0ad0e07bb4f5bf98dc192d2b70897cfbb1a26.png)

[Read more](https://testingbot.com/support/tunnel)

 Buy vs build 
## TestingBot vs a self-hosted Selenium grid

Running your own Selenium grid sounds cheap until you account for the maintenance, the flakiness and the missing devices. Here is how a hosted Selenium cloud compares.

| Capability | TestingBot | Self-hosted Selenium Grid |
| --- | --- | --- |
| Browser coverage | 6100+ browsers, all major versions, refreshed weekly | Limited to what you provision and patch yourself |
| Time to first test | Minutes, change one URL in your code | Days to weeks of grid setup and tuning |
| Real iOS & Android | Real physical devices on demand | Requires a separate device lab |
| Parallel scaling | Up to 100 concurrent sessions, on demand | Capped by your hardware budget |
| Video & logs | Video, network, browser & Selenium logs included | Roll your own recording & log aggregation |
| Reliability | 99.9% uptime SLA, 24/7 monitoring | You are the on-call engineer |
| Support | 24/7 human support and dedicated CSM | Stack Overflow and your own logs |

FAQ
## Selenium on TestingBot: frequently asked questions

What is a cloud-based Selenium grid?

A cloud-based Selenium grid is a managed pool of browser nodes that you connect to via the `https://hub.testingbot.com/wd/hub` endpoint. Your existing Selenium WebDriver code stays the same, only the remote URL and a few capabilities change. TestingBot handles the OS images, browser installs, scaling and recording for you.

Which Selenium versions does TestingBot support?

TestingBot supports every Selenium version still in active use, from Selenium 2.x and 3.x through Selenium 4 and Selenium BiDi. You can pin a specific server version per-test using the `se:options` or `tb:options` capability.

Can I run Selenium tests in parallel?

Yes. Plans on TestingBot include up to 100 parallel Selenium sessions. Each session runs in its own single-use VM, so tests do not interfere with one another and parallelism does not introduce flakiness.

Does TestingBot work with Selenium 4 and BiDi?

Fully. Our hub speaks Selenium 4 W3C WebDriver and supports the new [Selenium BiDi protocol](https://testingbot.com/support/web-automate/selenium/selenium-bidi) for advanced features like real-time logs, network interception and authentication handling.

How do I migrate existing Selenium tests to TestingBot?

Change the remote URL to `https://hub.testingbot.com/wd/hub`, add your TestingBot credentials, and pick a browser/OS via capabilities. See our [migration guide](https://testingbot.com/support/web-automate/selenium/migrate-existing-tests) for step-by-step examples in every language.

Can I test internal or staged sites?

Yes, install our [secure tunnel](https://testingbot.com/support/tunnel) and your Selenium tests can reach staging environments, localhost servers or anything else behind your firewall, with no inbound rules required.

Does TestingBot record videos and logs of my Selenium tests?

Every Selenium session is recorded as full HD video alongside step-by-step Selenium commands, browser console logs, network HAR files and screenshots. Artifacts are accessible from the dashboard or via the REST API for CI integrations.

Is the Selenium grid SOC 2 / GDPR compliant?

TestingBot is GDPR-compliant with EU data residency, ISO 27001 aligned and STAR Level 1 certified. We offer SAML SSO, SCIM and audit logs on enterprise plans.

## More reasons to love TestingBot

### 24/7 support

Got questions? Ask in the 24/7 in-app customer [chat support](https://testingbot.com#) or [send us an email](https://testingbot.com/contact/new). We are here to help you!

TestingBot Support

Hey 👋 How can we help?

I need support

### Trusted by over 14,000 teams

6M+

Tests

120k+

Users

400+

Enterprises

106

Countries

[Request a demo](https://testingbot.com/demo)

### Developer Documentation

Everything you need to integrate TestingBot into your workflow. Browse guides, API references and SDKs for web and mobile testing.

- [Selenium Quickstart Documentation](https://testingbot.com/support/web-automate/selenium)
- [Selenium 4](https://testingbot.com/support/web-automate/selenium/selenium4)
- [Selenium BiDi](https://testingbot.com/support/web-automate/selenium/selenium-bidi)
- [CI/CD integration](https://testingbot.com/support/integrations/ci-cd)

[Explore Documentation](https://testingbot.com/support)

### Enterprise-grade Security

STAR Level 1

Certified

GDPR

Compliant

SAML SSO

Single Sign-On

99.9%

Uptime SLA

[Visit TestingBot Trust Center](https://trust.testingbot.com/)

## Ready to scale your Selenium testing?

Read our [Selenium Cloud Testing](https://testingbot.com/support/web-automate/selenium) documentation and run your first test in under 5 minutes.

[Start a free trial](https://testingbot.com/users/sign_up)

Resources you may like

[![Selenium and Generative AI](https://testingbot.com/assets/resources/articles/28-af707bf052844eb00f861bb6ebba57e6be4479dde1c78a5df4e70d2f597a8b18.webp)](https://testingbot.com/resources/articles/generative-ai-selenium)
### [Selenium and Generative AI](https://testingbot.com/resources/articles/generative-ai-selenium)

Generate realistic looking test data to be used with your Selenium Automated Tests.

[Read more](https://testingbot.com/resources/articles/generative-ai-selenium)

[![Selenium 4: what's new](https://testingbot.com/assets/blog/2021/se4.webp)](https://testingbot.com/blog/selenium-4)
### [Selenium 4: what's new](https://testingbot.com/blog/selenium-4)

Learn more about what is new Selenium 4.

[Read more](https://testingbot.com/blog/selenium-4)

[![Selenium WebDriver BiDi](https://testingbot.com/assets/blog/2024/bidi.webp)](https://testingbot.com/blog/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 more](https://testingbot.com/blog/webdriver-bidi)
