Repolode
stevepryde

stevepryde/thirtyfour

Webサイトの自動UIテストに使える、Rust向けSelenium WebDriverクライアントライブラリ。

スター
1,443
フォーク
102
未解決の Issue
1
最終コミット
17 日前

これは何?

thirtyfourは、Webアプリケーションの自動エンドツーエンドテストを目的とした、Selenium / W3C WebDriverプロトコル用のRustクライアントです。chromedriverなどのドライバーを介してブラウザーセッションを直接開始できるほか、Selenium StandaloneやGrid経由でも利用できます。

test ID、id、class、CSS、タグ、XPathなどのセレクターによる要素検索、キーやキーの組み合わせの送信、JavaScriptの実行、アクションチェーン、Cookie、フレーム・ウィンドウ・アラートの切り替え、shadow DOM、PNGスクリーンショットなど、WebDriverの一般的な機能を備えています。クエリーインターフェースでは明示的な待機や条件判定を利用でき、コンポーネントラッパーを使ってPage Object形式でテストを構成できます。ブラウザーテストランナーは、エラーやパニック発生時に非同期でのクリーンアップを試みます。

オプションのfeature flagを有効にすると、型付きのChrome DevTools Protocolコマンド、WebSocketベースのCDPイベント購読、クロスブラウザー対応のWebDriver BiDiを利用できます。このcrateはMITまたはApache 2.0のデュアルライセンスで提供され、Rust 1.88以降が必要です。

主な機能

  • 01W3C WebDriverとWebElementのすべてのメソッドに対応。
  • 02test ID、id、class、CSS、タグ、XPathセレクターで要素を検索。
  • 03明示的な待機に対応したクエリーインターフェースと、Page Object向けのコンポーネントラッパーを提供。
  • 04型付きのChrome DevTools Protocolコマンドと、オプションのCDPイベント購読を利用可能。
  • 05オプトインのfeature flagにより、クロスブラウザー対応のWebDriver BiDiをサポート。
  • 06ブラウザー全体または個々の要素をPNGでスクリーンショット撮影。

ユースケース

  • Rustで書かれたWebアプリケーションのエンドツーエンドUIテスト。
  • 既存のSelenium自動化スクリプトをRustのコードベースへ移行。
  • Chrome DevToolsの機能を型付きで利用する必要があるブラウザーワークフローの自動化。

クイックスタート

  1. 1

    Rustプロジェクトにthirtyfourを依存関係として追加します(cargo add thirtyfour)

  2. 2

    chromedriverなどのWebDriverサーバーを起動し、asyncのサンプルを実行します

    cargo run --example tokio_async

使う前に知っておきたいこと

  • テストの実行には、稼働中のWebDriverサーバーまたはchromedriverなどのブラウザードライバーが必要です。
  • メタデータではライセンスがNOASSERTIONと記載されていますが、READMEにはMITまたはApache 2.0のデュアルライセンスと記載されています。

収録されている特集

トピック

よくある質問

thirtyfour とは?
Webサイトの自動UIテストに使える、Rust向けSelenium WebDriverクライアントライブラリ。 thirtyfourは、Webアプリケーションの自動エンドツーエンドテストを目的とした、Selenium / W3C WebDriverプロトコル用のRustクライアントです。chromedriverなどのドライバーを介してブラウザーセッションを直接開始できるほか、Selenium StandaloneやGrid経由でも利用できます。
thirtyfour は無料で使えますか?ライセンスは?
thirtyfour は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
thirtyfour は今もメンテナンスされていますか?
活発にメンテナンス中。thirtyfour の最終コミットは 2026年10月21日 です。
thirtyfour は何に使えますか?
Rustで書かれたWebアプリケーションのエンドツーエンドUIテスト。 既存のSelenium自動化スクリプトをRustのコードベースへ移行。 Chrome DevToolsの機能を型付きで利用する必要があるブラウザーワークフローの自動化。
thirtyfour のインストール方法は?
Rustプロジェクトにthirtyfourを依存関係として追加します(cargo add thirtyfour) chromedriverなどのWebDriverサーバーを起動し、asyncのサンプルを実行します: cargo run --example tokio_async
thirtyfour はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/stevepryde/thirtyfour

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト