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 });