Repolode
stevepryde

stevepryde/thirtyfour

A Selenium WebDriver client library for Rust, used to write automated UI tests for websites.

Stars
1,443
Forks
102
Open issues
1
Last commit
18 days ago

What is it?

thirtyfour is a Rust client for the Selenium / W3C WebDriver protocol, aimed at automated end-to-end testing of web applications. It can start browser sessions directly through a driver such as chromedriver, or through Selenium Standalone or Grid.

The library covers the common WebDriver surface: finding elements by selectors such as test ID, id, class, CSS, tag and XPath, sending keys and key combinations, running JavaScript, action chains, cookies, frame, window and alert switching, shadow DOM, and PNG screenshots. A query interface supports explicit waits and predicates, and component wrappers help structure tests in a page-object style. A browser-test runner attempts asynchronous cleanup on errors and panics.

Optional feature flags add typed Chrome DevTools Protocol commands, WebSocket-based CDP event subscription, and cross-browser WebDriver BiDi support. The crate is dual-licensed under MIT or Apache 2.0 and requires Rust 1.88 or later.

Key features

  • 01Supports all W3C WebDriver and WebElement methods.
  • 02Finds elements by test ID, id, class, CSS, tag and XPath selectors.
  • 03Provides an explicit-wait query interface and component wrappers for page objects.
  • 04Offers typed Chrome DevTools Protocol commands and optional CDP event subscription.
  • 05Supports cross-browser WebDriver BiDi via an opt-in feature flag.
  • 06Captures screenshots of the full browser or individual elements as PNG.

Use cases

  • End-to-end UI testing of web applications written in Rust.
  • Porting existing Selenium automation scripts to a Rust codebase.
  • Automating browser workflows that need typed access to Chrome DevTools features.

Quick start

  1. 1

    Add thirtyfour as a dependency to your Rust project (cargo add thirtyfour)

  2. 2

    Start a WebDriver server such as chromedriver, then run the async example

    cargo run --example tokio_async

Things to know

  • Requires a running WebDriver server or browser driver such as chromedriver to run tests.
  • The license is listed as NOASSERTION in metadata, though the README states dual MIT or Apache 2.0.

In collections

Topics

FAQ

What is thirtyfour?
A Selenium WebDriver client library for Rust, used to write automated UI tests for websites. thirtyfour is a Rust client for the Selenium / W3C WebDriver protocol, aimed at automated end-to-end testing of web applications. It can start browser sessions directly through a driver such as chromedriver, or through Selenium Standalone or Grid.
Is thirtyfour free to use? What license does it have?
thirtyfour is open source under the Other license. Check the license terms before using it in commercial products.
Is thirtyfour still maintained?
Actively maintained. The last commit to thirtyfour was on Oct 21, 2026.
What can I use thirtyfour for?
End-to-end UI testing of web applications written in Rust. Porting existing Selenium automation scripts to a Rust codebase. Automating browser workflows that need typed access to Chrome DevTools features.
How do I install thirtyfour?
Add thirtyfour as a dependency to your Rust project (cargo add thirtyfour) Start a WebDriver server such as chromedriver, then run the async example: cargo run --example tokio_async
Where can I get thirtyfour?
The source code and installation instructions are on GitHub: https://github.com/stevepryde/thirtyfour

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects