Selenium-standalone [extra Quality] -

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

npx selenium-standalone install Pro tip: Add --singleDriverInstall=chrome if you only need Chrome to save bandwidth. npx selenium-standalone start You will see output like:

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

Started Selenium server [PID: 1234] Selenium server running on port 4444 That’s it. You now have a Selenium Grid running at http://localhost:4444 . You can point your WebDriver tests (in Java, Python, JavaScript, Ruby, etc.) to this URL. Here is a minimal test script that connects to your selenium-standalone server:

Then, three weeks later, your CI build fails because the browser auto-updated but the driver didn’t. await browser

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.

// 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 }); Let me know in the comments below

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.