JobAutoでアプリの要素内の文字をOCR変換する方法

★アクションの説明、概要

JobAutoでアプリ画面の要素内に表示されている文字を、 OCRで読み取って取得する方法について説明します。

「【要素】文字変換」アクションでは、 アプリデザインで文字を取得したい箇所を要素として指定し、 その要素内に表示されている文字をOCR変換して変数へ格納します。

アプリによっては、 要素を指定できても「【要素】値取得」では 表示されている文字を取得できない場合があります。 そのような場合に、 OCRを使って画面上の文字を取得できます。

OCR変換にはGoogleのAPIを使用します。 OCR変換する文字はJobAutoからGoogleへ送信されるため、 インターネットへの接続が必要です。

インターネット接続にプロキシサーバを使用している環境では、 プロキシの設定を行ってください。 また、インターネットへのアクセス先を制限している場合は、 vision.googleapis.comへの通信を許可してください。


★アクションの作成方法


★アクションの設定画面について

アクション設定画面の設定項目について説明します。「画面を読み込み」「操作対象にフォーカス」「背景色」については、アプリデザインの使い方をご確認ください。

1.基本設定

1-1.要素が見つかるまでのタイムアウト(秒)

設定した時間まで、選択した要素をロボットが探し続けます。

1-2.要素が最前面に表示されるまで待つ

設定した時間まで、選択した要素が最前面に表示されるまでロボットが処理を停止します。

・待つ

最前面に表示されるまで処理を停止します。

・待たない

最前面に表示されるまで処理を停止しません。

1-3.格納先

OCR変換した値を格納する変数を設定します。

1-4.取得値

指定した要素内の文字をOCR変換した結果が表示されます。

・検索ボタン 

指定した要素内の文字をOCR変換します。

1-5.プロキシ

Googleへの通信を行うときにプロキシサーバを経由するか、しないかを設定します。

・Proxyを使用する

プロキシサーバを経由して通信します。

・Proxyを使用しない

プロキシサーバを経由せずに通信します。

Googleへの通信を行うときにプロキシサーバを経由するか、しないかを設定します。

1-6.変換時のオプション

OCRで変換するときに優先する言語を設定します。

・日本語を優先しない

日本語を優先せずにOCR変換します。

・日本語を優先する

日本語を優先してOCR変換します。

1-7.対象の要素

操作対象として設定した要素の画像が表示されます。


2.高度な設定

2-1.アクション有効

このアクションを無効にする場合は、チェックを外します。

2-2.キャッシュクリア

処理速度を上げるため、取得した要素の情報を保持しています。保持している要素情報をクリアし、再取得する場合にチェックを入れます。アプリの画面表示が変化した後に実行する場合などに使用します。

2-3.要素をアクティブにする

要素をアクティブな状態にしてから実行する場合は、チェックを入れます。

2-4.名前

要素を名前で指定するときに設定します。名前には変数を使用できます。
変数参照する場合はチェックボックスにチェックを入れてから、参照する変数の設定を行います。

名前の設定で要素を安定して特定できない場合は、 JobAutoの要素マッチングを安定させる方法|名前に正規表現を使うも確認してください。

2-5.クラス

要素をクラスで指定するときに設定します。

2-6.タイプ

要素をタイプで指定するときに設定します。
タイプの設定で要素を安定して特定できない場合は、次のFAQも確認してください。

2-7.AID

要素をAIDで指定するときに設定します。AIDには変数を使用できます。
変数参照する場合はチェックボックスにチェックを入れてから、参照する変数の設定を行います。

2-8.要素インデックス

名前・クラス・タイプ・AIDなどの設定だけでは操作対象を1つに絞り込めない場合に、何番目の要素を操作するか指定します。先頭の要素は「0」です。要素インデックスには変数を使用できます。変数の値が空の場合など、インデックスが空欄のときは自動的に「0」が使用されます。


3.エラー発生時の対応

3-1.エラー時の処理

エラーが発生したときの設定を行います。詳細はこちらをご確認ください。

3-2.基点となる条件分岐

エラー時の処理で条件分岐の次のフローに移動を選択したときに、設定することができます。アクションでエラーが発生した場合、移動先の条件分岐を選択します。

3-3.エラー時にログ出力

エラーが発生したときにログに出力するか設定します。スケジュール実行したときのログへ出力されます。エラーとして扱わない場合は、チェックを外します。詳細はこちらをご確認ください。

「【要素】文字変換」と「【要素】値取得」の違い

「【要素】文字変換」と 「【要素】値取得」は、 どちらもアプリ画面から情報を取得するアクションですが、 取得方法が異なります。

アクション取得方法
【要素】値取得指定した要素が持っている値やテキスト、名前、チェック状態などを取得します。
【要素】文字変換指定した要素内に画面表示されている文字をOCRで読み取って取得します。

要素を指定できても、 「【要素】値取得」で目的の文字を取得できない場合は、 「【要素】文字変換」を使ってOCRで取得できるか確認してください。

OCR変換した結果を確認する

「取得値」には、 指定した要素内の文字をOCR変換した結果が表示されます。

アクションを作成するときは、 検索ボタンを使ってOCR変換を実行し、 目的の文字として認識されているか確認してください。

OCR変換した文字を変数へ格納する

OCR変換した結果は、 「格納先」で指定した変数へ格納します。

取得した文字は、 後続の条件分岐や文字列の判定、 ほかのアクションなどで利用できます。

日本語を優先してOCR変換する

「変換時のオプション」では、 OCR変換するときに日本語を優先するか設定できます。

設定動作
日本語を優先しない日本語を優先せずにOCR変換します。
日本語を優先する日本語を優先してOCR変換します。

日本語が含まれる画面をOCR変換する場合は、 認識結果を確認しながら設定してください。

OCR変換ではGoogleとの通信が発生します

「【要素】文字変換」では、 OCR変換にGoogleのAPIを使用します。

OCR変換する文字はJobAutoからGoogleへ送信されるため、 このアクションを実行するには インターネットへの接続が必要です。

インターネットへのアクセス先を制限している環境では、 vision.googleapis.comへの通信を許可してください。

プロキシ環境でOCR変換する場合

インターネット接続にプロキシサーバを使用している環境では、 「プロキシ」の設定を確認してください。

設定動作
Proxyを使用するプロキシサーバを経由してGoogleへ通信します。
Proxyを使用しないプロキシサーバを経由せずGoogleへ通信します。

OCRする対象の要素を確認する

アクション設定画面の「対象の要素」には、 操作対象として設定した要素の画像が表示されます。

想定した文字を取得できない場合は、 まずOCRの対象となっている要素が正しいか確認してください。

アプリデザインの「操作対象にフォーカス」を使用すると、 JobAutoがどの要素を操作対象として認識しているか確認できます。

画面が変わったあとにOCR変換する場合

JobAutoは処理速度を上げるため、 要素の情報を保持しています。

アプリの画面表示が変化したあとに文字変換を行う場合は、 高度な設定の「キャッシュクリア」を使用して、 要素情報を再取得してください。

同じ条件の要素が複数見つかる場合

「名前」「クラス」「タイプ」「AID」などの設定だけでは 対象要素を1つに絞り込めない場合は、 「要素インデックス」で対象を指定します。

要素インデックスは0から始まるため、 1番目の要素を指定する場合は「0」を設定します。

OCR変換がうまくいかない場合

想定した文字を取得できない場合は、 次の点を確認してください。

  1. 操作対象となるアプリへ正しく接続しているか
  2. OCRの対象となる要素を正しく指定できているか
  3. 検索ボタンで目的の文字としてOCR変換されるか
  4. 日本語を含む場合は「日本語を優先する」の設定を確認する
  5. インターネットへ接続できるか
  6. プロキシ環境ではプロキシの設定が適切か
  7. vision.googleapis.comへの通信が制限されていないか
  8. 画面が変化した場合は「キャッシュクリア」が必要ではないか
  9. 複数の要素が見つかる場合は要素インデックスが適切か
  10. 要素の表示に時間がかかる場合はタイムアウト時間が適切か

関連するアプリ操作・FAQ

2件のコメント

  1. […] ・以下の各アクションへproxyを使用する機能を追加しました。【要素】文字変換アクションはこちらをご覧ください。指定の文字に対してマウス操作アクションはこちらをご覧ください。指定の文字が出るまで待つアクションはこちらをご覧ください。指定の文字が消えるまで待つアクションはこちらをご覧ください。文字変換アクションはこちらをご覧ください。この範囲内の指定の文字に対してマウス操作アクションはこちらをご覧ください。【表】値取得アクションはこちらをご覧ください。 […]

    返信

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。