メインコンテンツまでスキップ

OCR

OCR(光学文字認識)は、テキスト検索などに用いる、もう一つの重要な自動化技術です。OCRは、画像を使用するよりも堅牢で容易に運用保守できる手段となります。

OCRをより効果的に活用するための重要ポイントを紹介します。

  • 大文字と小文字の区別とその他のOCR properties
  • 検索エリアを絞る
  • ページ読み込みのための短い強制待機の設定

大文字と小文字の区別

大文字と小文字を区別することで、OCRエンジンが文字種に対して厳密に検索を行うようになります。これは、誤認識の数を減らし、スクリプトの信頼性を向上させる簡単かつ迅速な方法です。

大文字と小文字の区別をデフォルトとして設定することができます。これは、Eggplant Preferencesの設定により、またはOCR検索でのtextStyles/propertiesの使用によって行うことができます。

次の例では、左側のコード行は'Hello World'の4つの対象すべてと一致します。この実装は、文字種が混在する検索や自動化での誤認識を招きます。検索にcaseSensitiveプロパティを追加するだけで、検出は1つに減り、精度が大幅に向上します。Eggplant PreferencesをcaseSensitivityをデフォルトとして使用するように設定することをお勧めします。


遷移待機

EggplantsのOCRエンジンは、画面の左上から右下へ読み取りを行います。このプロセスの為に、検索処理には時間がかかる場合があります。ページ遷移、イベントアニメーションなどの考慮不要な画面変化の途中での効果のない検索処理を避けるために、OCR処理の開始前に検索を一時待機すると、自動化のスピードが最適化されます。

これは、短い強制待機によって達成できます。例えば、2秒間の待機を設定します:

click text:"Contact Us"
wait 2 // page transition
waitfor 10, text:"Contact Keysight"

左側のビデオには一時停止の設定がありませんが、右側は検索前に一時停止しています。これらの例からは、遷移待機を設定することにより、全体で処理が3秒早くなったことが分かります。


検索領域の限定

OCR検索エリアを限定することには、2つの主な利点があります:

  • OCRが認識処理を行うエリアを絞って範囲内の要素を減らすことで、OCRの速度を向上させる。
  • 誤判定や誤認識のリスクを低減する。

自動化の主要な領域に検索範囲を限定することで、誤認識のリスクを大幅に減らし、実行速度を劇的に向上させることができます。

以下に簡単な例を示します。ウェブアプリケーションのテストを目的として、画面上のその他のブラウザやOS機能の操作部分は除外し、search rectangleを用いて、描画されたコンテンツにのみに検索範囲を限定することができます。その結果OCRエンジンは、テストで考慮すべき領域内でのみ検索するように最適化されます。

さらに、アプリケーションは通常、一貫した色のスキームを持っています。検索領域をAUTに絞ることで、色やコントラスト比の要素を限定し、OCRの解釈を容易にします。

以下のスクリーンショットで黄色で示されるエリアが、AUTに限定した検索領域です。一方はウェブアプリケーション、もう一方はメインフレーム/ターミナルアプリを指定しています。

AUTの検索領域の限定

AUTはUIデザイン上の機能区分に応じ、領域を小分けすることができるでしょう。ただし、検索エリアを過剰に設計しすぎないよう注意し、一貫性やシナリオに焦点を当ててください。例えば:

  • メインコンテンツ
  • 上部とサイドメニュー
  • ポップアップ

以下の例では、Salesforce Lightningを対象に領域を定義しています。ここでは、メインナビゲーション、コンテンツ、データ入力のためのポップアップ/新しいウィンドウに分割しています:

検索領域の分割


インラインプロパティ

SearchRectanglesおよびその他のGlobal Eggplant Propertiesを設定する方法は2つあります。1つめの方法は、コードで明示的にset the searchRectangleを設定することです。

この方法の欠点は、すべてのシナリオがこの設定の影響を受け、検索エリアを変更する度にsearchRectangleの設定とリセットの定期的なメンテナンスサイクルが必要になることです。

set the searchRectangle to (0,70,1920,1040)
click text:"Something"
set the searchRectangle to ()

より簡便でスケーラブルな2つめの方法は、検索エリアの指定が必要なコード行を特定し、インラインsearchRectangleプロパティを使用してOCR(および画像)検索を行うことです:

click text:"Something", searchRectangle:(0,70,1920,1040)

インラインプロパティはそのコード行にのみ影響し、他の処理には影響を与えません。一方、スイート全体のプロパティ(例えばsearchRectangleText Styleなど)は、共通のプロパティセットが必要な複数のイベントブロック(例:テーブル検証、データ入力など)に有用です。