TestKase
TestKase
|Docs
AutomateBrowserSelenium

Getting started

Point an existing Selenium suite at TestKase by changing one URL, and run your first test on a real browser.

The Selenium connection is an ordinary Selenium grid at https://hub.testkase.com/wd/hub. Every official Selenium client — Java, Python, JavaScript, Ruby, C# — speaks it natively, with no TestKase SDK required.

TestKase is a transport, not a translator: your Selenium library issues every command (click, type, navigate, screenshot) and the Hub forwards it to the in-VM driver — chromedriver, msedgedriver, geckodriver, or safaridriver.

1. Get your access key

Open API Keys in your dashboard and copy your key. It starts with xyz_.

2. Point your tests at TestKase

https://x:<accessKey>@hub.testkase.com/wd/hub

Point your RemoteWebDriver / Builder at this URL and pass standard capabilities as usual. The x is a placeholder username: the URL format needs one and some clients reject an empty one, so keep it. Your access key, after the :, is the credential.

If your CI tool won't let you put credentials in a URL, pass the key as testkase:options.accessKey instead.

3. Run your first test

// ChromeOptions sets browserName for you. Swap in EdgeOptions,
// FirefoxOptions or SafariOptions for the other browsers.
ChromeOptions options = new ChromeOptions();
options.setBrowserVersion("latest");
options.setPlatformName("macOS 15");

Map<String, Object> tk = new HashMap<>();
tk.put("build", "smoke-1");
tk.put("name", "my-test");
options.setCapability("testkase:options", tk);

URL hub = new URL("https://x:[email protected]/wd/hub");
RemoteWebDriver driver = new RemoteWebDriver(hub, options);
driver.get("https://example.com");
driver.quit();
const { Builder, By } = require("selenium-webdriver");

const hub = "https://x:[email protected]/wd/hub";

const driver = await new Builder()
  .usingServer(hub)
  .withCapabilities({
    browserName: "chrome",
    browserVersion: "latest",
    platformName: "macOS 15",
    "testkase:options": { build: "smoke-1", name: "my-test" },
  })
  .build();

await driver.get("https://example.com");
await driver.quit();
from selenium import webdriver
from selenium.webdriver.common.options import ArgOptions

options = ArgOptions()
options.browser_name = "chrome"
options.browser_version = "latest"
options.platform_name = "macOS 15"
options.set_capability("testkase:options", {"build": "smoke-1", "name": "my-test"})

hub = "https://x:[email protected]/wd/hub"
driver = webdriver.Remote(command_executor=hub, options=options)
driver.get("https://example.com")
driver.quit()

Questions

▶Can Selenium drive real phones?

Yes — the same URL takes platformName: "iOS" or "Android". See Automate Mobile.