このプロジェクトについて

playwright-rsは、async/awaitとTokioを使用してRustからMicrosoft Playwrightを操作するRustクレートです。公式の言語バインディングで使用されているものと同じNode.jsベースのPlaywrightサーバーとJSON-RPCで通信しながら、高レベルで型安全なRust APIを提供し、ブラウザ自動化とクロスブラウザプロトコルの処理は上流のPlaywrightプロジェクトに委ねています。 このプロジェクトはpre-1.0ですが、Playwright Python APIとの同等性に達したと述べており、安定版リリースの前にドッグフーディング、APIの洗練、パフォーマンスに注力しています。Chromium、Firefox、WebKitをサポートし、Linux、macOS、WindowsでCIテストを実施しています。APIには、Resultベースのエラー処理、オプションビルダー、コンパイル時に検証されるロケーターマクロなど、Rust指向の機能が含まれています。 典型的なワークフローには、ブラウザの起動、ページの作成、URLへのナビゲーション、自動待機ロケーターの使用、レスポンスJSONの読み取り、トレースのキャプチャが含まれます。追加のクレート機能は、テストプロセスからテスト対象アプリケーションを提供すること、トレースzipの解析、スクリーンショット差分アサーション、TLSおよび暗号バックエンドの選択、スタンドアロンのブラウザインストーラーCLIをサポートしています。このクレートはまた、Browser::bindとBrowser::unbindを提供し、Rustで起動したブラウザをPlaywright MCPパッケージ、CLIツール、エージェントツールなどの外部クライアントに公開できます。 ブラウザバイナリは、バンドルされたPlaywrightドライバーと一致するように、このクレートを通じてインストールされます。ドライバーは最初のビルド時に組み立てられ、独自のNode.jsランタイムを含みます。ダウンロードをスキップしたりキャッシュを設定したりするための環境変数が利用可能です。リポジトリには、互換性のあるAIコーディングツール向けのAgent Skillも同梱されており、依存関係、ブラウザのインストール、オブジェクトモデル、ビルダー、ロケーター、自動待機、トレースキャプチャに関するガイダンスが含まれています。 文書化された制限として、上流のPlaywrightの問題により、ネイティブWindowsではWebKitのlaunch_persistent_contextが動作しません。そこでは非永続的なWebKitは動作し、永続コンテキストはWSL、macOS、またはLinuxを使用できます。このソフトウェアはApache-2.0の下でライセンスされています。