Selenium-standalone May 2026

Try selenium-standalone and reclaim your sanity. Have a tip for managing WebDriver in large monorepos? Let me know in the comments below!

If you have ever tried to set up a web automation suite (using Selenium WebDriver) on a new machine or a CI/CD pipeline, you know the drill. You download the ChromeDriver, make sure it matches your browser version, move it to /usr/local/bin , grant permissions, then do the same for GeckoDriver (Firefox) and EdgeDriver.

Here is a setup.js file that starts the server before your tests run and kills it after: selenium-standalone

await browser.url('https://example.com'); const title = await browser.getTitle(); console.log( Page title is: ${title} ); await browser.deleteSession(); })();

Run your test while selenium-standalone start is running in another terminal. They will connect automatically. The CLI is great, but the real power is using the API inside your test setup hooks. Try selenium-standalone and reclaim your sanity

name: E2E Tests on: [push] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '20' - run: npm ci

after(async function() { await server.kill(); // Clean shutdown }); If you have ever tried to set up

// test.js const { remote } = require('webdriverio'); (async () => { const browser = await remote({ capabilities: { browserName: 'chrome', 'goog:chromeOptions': { args: ['headless', 'no-sandbox'] // Great for CI } }, port: 4444 // Your selenium-standalone port });