![[Show HN]:Libretto PR agents – Playwright スクリプトの失敗を自動的に修正するツール](/_next/image?url=%2Fscreenshots%2F2026-07-17%2F1784241106298.webp&w=3840&q=75)
2026/07/17 5:21
[Show HN]:Libretto PR agents – Playwright スクリプトの失敗を自動的に修正するツール
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Libretto は、既存の自動化ロジックを変更せずに失敗する Playwright スクリプトを自動的に修正するための画期的なオープンソースツールです。その主な利点は、ライブページの失敗を分析し、正確なコード修正を含む GitHub のプルリクエストを生成することで、現在のワークフローへのシームレスな統合を実現できる点にあります。多くの自動化ツールとは異なり、Libretto は連続的な実行時間のオーバーヘッドではなく、単一のデバッガー初期化のみを必要とするため、大規模なテストスイートの維持に非常に効率的です。現状では Playwright のみをサポートしており(Selenium または Puppeteer にはまだ対応していません)、クラウド環境での要素の非表示問題や動的ネーミング不一致に悩むチームにとって重要な解決策を提供します。ユーザー自身がインフラコストを賄うためにモデルプロバイダーの API キーを提供する必要がありますが、MIT ライセンス下で無料で利用でき、専用クラウドホスティングの利用を強制することはありません。結局のところ、Libretto は開発者が堅牢なスクリプト構造を維持すると同時に手動でのメンテナンス労力を大幅に削減することを可能にし、ウェブ要素の変動による日常のテスト失敗のデバッグに時間を費やすのではなく、イノベーションに注力できるようチームをサポートします。
本文
PLAYWRIGHT PR AGENTS —— 失敗するスクリプトを自動修正
すでに動作しているブラウザ自動化環境を変更せずに維持しつつ、エラー発生時に Libretto がライブページを検証し、GitHub Pull Request を作成してコードの修正案を提案します。
🛠️ OpenLibretto の自動修復機能概要
libretto-agent はメインブランチに 1 つのコミットをマージします。具体的な修正例と仕組みは以下の通りです。
自動修正の具体例
- 対象ファイル:
workflows/book-appointment.ts - 元のコード:
await page.locator('input[name="username"]').fill(login); - 修正後のコード:
await page.locator('input[name="login"]').fill(login); - 理由: 「サインイン」フィールドの属性は
です。これは**ライブページのインスペクション(調査)**により確認されています。name="login"
運用フロー
- スクリプト自体は通常通り動作を続けます。
- エラーが発生した後のみ、Pull Request エージェントが起動します。
- 何が変わったかを調査し、修正コードを提案します。
❓ FAQ(よくある質問)
ワークフローが失敗後にどうなるでしょうか?
- エージェントはエラーの原因を診断し、今後の実行のためにコードの修正を提案することに焦点を当てます。
- 現在の試行については、キャッチ処理、再試行、フォールバック処理、エラーハンドリングなどは既存の仕組みがそのまま担当します。
- エージェントは修正案を発見するとすぐに Pull Request を開きます。
libretto-playwright-debugger
は必須ですか?
libretto-playwright-debugger- いいえ、必須ではありません。
- 既存の Playwright プロジェクトに
パッケージを追加し、デバッガーを初期化します。libretto-playwright-debugger - 失敗処理のパスから
を呼び出せば十分です。debugFailure() - 現在のランタイム、ブラウザプロバイダ、デプロイ構成、ワークフロー構造は変更不要です。
Selenium や Puppeteer と動作しますか?
- 現時点では非対応です。
- このパッケージは Playwright の
オブジェクトを受け取るため、自動化処理自体もPlaywright を通じて実行する必要があるからです。Page - Selenium および Puppeteer には別途アダプターが必要になります。
すべてのブラウザやクラウドプロバイダと動作しますか?
- はい、動作します。
- ローカル環境、セルフホスト、そしてホスティングされているブラウザとの連携も可能でした。
- 前提条件: 自動化処理内ではライブ Playwright の
が存在し、かつPage
が実行されるまでページを保持しておく必要があります。debugFailure() - Libretto Cloud を利用してブラウザセッションを実行する必要はありません。
プルリクエストエージェントは無料ですか?
- Libretto はエージェントの利用に対して課金しません。
- ただし、モデルプロバイダーの API キーとブラウザインフラストラクチャは各自で用意する必要があります。
- そのため、AI モデルやブラウザプロバイダーの利用料は別途かかる場合があります。
オープンソースですか?
- はい、オープンソースです。
- Playwright デバッガーパッケージは Libretto リポジトリ上で、MIT ライセンスの下で公開されています。