メインコンテンツへスキップ

WebDriver Bidi の TypeScript サポート

·3分で読めます

WebdriverIO v8 のリリースにより、WebDriver Bidi プロトコルに直接接続する機能が導入されました。これにより、ユーザーはプロトコルの開発が進むにつれて、その新しい機能を基本的な方法で利用できるようになりました。今日、すべてのブラウザリリースでより多くの機能が有効になるため、WebdriverIO が統合を強化し、ユーザーがより簡単にアクセスできるようにする時が来ました。

WebdriverIO v8.11 のリリースにより、新しい WebDriver Bidi インターフェースを追加し、型安全にしました🎉

WebDriver Bidi の仕様のインターフェースは、簡潔なデータ定義言語(略して CDDL)によって定義されます。これは、どのペイロードをドライバーに送信でき、どの応答が予想されるかを記述します。過去1か月間、私は W3C のブラウザテストおよびツールワーキンググループが仕様で定義された CDDL を検証し、WebDriver エコシステムがプロトコルを採用するのを支援するために、CDDL パーサーに取り組んできました。

私は、それが貢献できることを願って、2つの NPM パッケージを作成しました

  • cddl:CDDL を読み込み、AST に解析し、コンテンツを検証するためのパッケージ
  • cddl2ts:CDDL ファイルを他の TypeScript プロジェクトで使用できる TypeScript インターフェースに変換するためのパッケージ

WebdriverIO リポジトリの最近の変更により、これらのパッケージのおかげで、完全に型付けされた WebDriver Bidi インターフェースが生成されるようになりました。例:

WebDriver Bidi TypeScript Support

また、プロトコルのドキュメントを更新し、Promises を使用してプロトコルを操作するのに役立つ新しい Bidi コマンドを追加しました。ブラウザがより多くの Bidi 機能をサポートし始めると、WebdriverIO は新しいプロトコルでより多くの自動化を実行し始め、テストが最新かつ最高のクロスブラウザ自動化標準を使用していることを保証します。今後のブラウザバージョンで導入される予定の機能は次のとおりです。

  • プリロードスクリプトの追加:これは、WebdriverIO が Web API をモックし、イントロスペクション用のスクリプトを注入するのに役立つ非常に貴重なコマンドになります。
  • ネットワークインターセプト:これにより、ネットワークリクエスト用の WebdriverIO のモック API がクロスブラウザで互換性を持つようになります。
  • HTTP認証:ユーザー認証によって保護されているWebページをロードする機能を有効にします。

WebdriverIO が最新の WebDriver Bidi 機能を提供する場合でも、それらがブラウザに実装されて出荷されることを意味しないことに注意してください。すべてのブラウザベンダーには、これらの新機能を追加するために利用できる優先順位とリソースが異なり、チームは大きな進歩を遂げていますが、プロトコルで指定されたすべてのものが安定したブラウザバージョンに導入されるまでにはさらに時間がかかります。ただし、WebdriverIO は、準備ができ次第、使用できる型付きインターフェースを常に提供することが保証されています。

さらに、私は WebdriverIO インターフェースを拡張し、既知の browserelement、および mock オブジェクトに加えて page オブジェクトを含めて、特定のブラウジングコンテキストに接続されたコマンドとイベントへのアクセスを簡素化するための提案に取り組んでいます。それについては近日中に情報をお知らせします!

この新しい標準を出荷するための Mozilla および Google ブラウザチームの優れたコラボレーションと取り組みに感謝して締めくくりたいと思います。これにより、世界中の開発者が将来高品質の Web アプリケーションを出荷できるようになります。

ようこそ!何かお手伝いできることはありますか?

WebdriverIO AI Copilot