Skip to content

seleniumbase-rs 0.1.0

Choose a tag to compare

@MustCodeAl MustCodeAl released this 12 Oct 22:48
· 426 commits to main since this release

The first release of seleniumbase-rs, a Rust port of Python SeleniumBase 4.55.2 and its MCP server.

[dependencies]
seleniumbase-rs = { git = "https://github.com/MustCodeAl/seleniumbase-rs", tag = "v0.1.0" }

Not published to crates.io.

What is in it

  • Two engines. BaseCase on WebDriver (thirtyfour) with the SeleniumBase API, and sb_cdp (Browser, Page, Locator), which drives Chrome over the DevTools Protocol with no driver at all.
  • Drivers started for you: chromedriver for Chrome and other Chromium browsers, geckodriver for Firefox, msedgedriver for Edge (matched to the installed version), operadriver and safaridriver. On macOS and Linux they and their browsers end with the program that started them, also when it is killed. sbase install / sbase get download a driver by name and version.
  • Parity with Python SeleniumBase: every upstream API has a recorded status in docs/parity.md: 888 implemented, 383 composed from existing calls, 94 not applicable (with the reason), none planned.
  • sbase, the command-line tool, and seleniumbase-mcp, the MCP server (cdp, driver and sb servers), both tested end to end as the real binaries.
  • Importers: sbase import-python (SeleniumBase and Selenium tests), sbase import-playwright (JavaScript, TypeScript, Python, codegen, pytest) and sbase import-puppeteer (scripts, jest-puppeteer, Mocha, Chrome Recorder JSON) write Rust tests; anything they cannot convert stays as a TODO with its line number.
  • Stealth layer (experimental, features scrape and impersonate): browser-identical TLS, HTTP/2 and headers, an MITM proxy, HttpSession and StealthSession, with custom JA3/JA4/Akamai inputs. Only Chrome 155 on macOS is measured; other browsers and systems are refused rather than guessed.
  • Tauri 3: the example desktop app (examples/tauri-profile-manager) builds on Tauri 3.0.0-alpha.4, and the whole library, every feature on, builds and passes its tests in a Tauri 3 app.
  • Terminal apps (feature tui): sbase commander, caseplans and behave-gui.
  • Tooling: mise.toml (toolchain and the gate as tasks), context7.json, a Dockerfile.

How it was checked

  • About 3,000 automated tests on macOS (Apple Silicon), with formatting, clippy (-D warnings) and cargo deny clean.
  • 144 tests in 28 files against a real Chrome 155, plus real Edge 155 on macOS and Firefox 153 in Docker.
  • Linux (arm64, in Docker): the test suite and the real-Chromium tests passed on an earlier commit.

Known limits

  • Windows has not been verified yet. The first run on a Windows PC found a startup crash of sbase (fixed here) and two test problems (fixed here); a full run is in progress.
  • Stealth fingerprints are measured for Chrome 155 on macOS only.
  • Firefox sessions get no proxy, extensions, mobile emulation or CDP/UC modes yet.
  • Ad blocking does not cover frames from other sites.
  • Most behaviour is checked against mocks; the real-browser tests cover the main paths.

The full list of changes is in CHANGELOG.md.