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

OCR テスト

モバイルネイティブアプリやデスクトップサイトでの自動テストは、一意の識別子がない要素を扱う場合に特に困難になることがあります。標準的な WebdriverIO セレクタ が常に役立つとは限りません。ここで登場するのが @wdio/ocr-service です。これは OCR(光学文字認識)を活用して、画面上の要素を表示されるテキストに基づいて検索、待機、操作できる強力なサービスです。

以下のカスタムコマンドが提供され、browser/driver オブジェクトに追加されるため、作業に必要な適切なツールセットが得られます。

仕組み

このサービスは以下のことを行います:

  1. 画面/デバイスのスクリーンショットを作成します。(必要に応じて、特定の領域を指定するための「干し草」として要素または長方形オブジェクトを提供できます。各コマンドのドキュメントを参照してください。)
  2. スクリーンショットを高コントラストの白黒に変換してOCRのために最適化します(高コントラストは多くの画像背景ノイズを防ぐために必要です。これはコマンドごとにカスタマイズ可能です。)
  3. Tesseract.js/Tesseract光学文字認識を使用して、画面からすべてのテキストを取得し、画像上で見つかったすべてのテキストをハイライトします。ここで見つけることができる複数の言語をサポートしています。
  4. Fuse.jsのファジーロジックを使用して、指定されたパターンに「おおよそ等しい」文字列を見つけます(完全一致ではなく)。例えば、検索値 UsernameUsename というテキストも見つけることができます。
  5. ターミナルを通じて画像を検証しテキストを取得するための CLI ウィザード(npx ocr-service)を提供します。

ステップ1、2、3の例はこの画像で確認できます

Process steps

このサービスは(WebdriverIOが使用するもの以外の)システム依存関係がゼロで動作しますが、必要に応じてTesseractのローカルインストールでも動作することができ、実行時間を大幅に短縮できます!(テストの高速化についてはテスト実行の最適化も参照してください。)

興味がありますか?使い方ガイドに従って今すぐ使い始めましょう。

重要

Tesseractから良質な出力が得られない理由はさまざまあります。アプリとこのモジュールに関連する最大の理由の1つは、見つける必要があるテキストと背景の間に適切な色の区別がないことかもしれません。例えば、暗い背景上の白いテキストは「簡単に」見つけることができますが、白い背景上の明るいテキストや暗い背景上の暗いテキストはほとんど見つけることができません。

詳細については、Tesseractのこのページも参照してください。

また、FAQを読むことも忘れないでください。

Welcome! How can I help?

WebdriverIO AI Copilot