画面上に指定した画像が存在するか確認する

この記事では、AUTORO desktop を使用して、指定画像の存在有無を確認する方法について紹介します。

順序に従った処理を実施する際、次のステップに移る前に「画面上に指定した画像が存在しているか?いないか?」を判断するケースで使用します。

この機能はdesktop版AUTOROでのみ利用可能です

この機能は、クラウド版では使用できません。

ブラウザ上の要素や画像の確認

OpenBrowser アクションで開いたWebページ上に、
指定の要素や画像が存在するか?を確認する場合は、
デスクトップ版であっても FindElement アクション(要素を見つける)をご使用ください。

要素を見つけるアクションの参考ページ:CSSセレクタを文字列で検索(FindElement)

 TargetExistsアクション

TargetExistsアクション(画面上に対象が存在するか確認する)を使うことで、「指定した画像が存在しているか」を判断できます。

画像があったら True、画像がなかったら False が出力されます。
このアクションを使用することで以下のような処理が実現できます。

  • 画面上に指定画像が表示されていたら処理Aを実施、表示されていなかったら処理Bを実施
  • 特定の画像が表示されるまで最大30秒待機する

本ページでは上記2つの処理の設定例を紹介します。

 設定例:画像の有無で処理の分岐

以下のサンプルの作成例を紹介します。

  • 画面上でオートロくんが見つかった場合は、「見つかった」というテキストを出力
  • 画面上でオートロくんが見つからなかった場合は、「見つからなかった」というテキストを出力

  • TargetExistsアクション(画面上に画像が存在するか確認する)を設置します
  • 「ここをクリック」をクリックします
  • 画面が暗くなったら、マウスドラッグの対角指定で画像を記録します

画面上に、TargetExistsアクションで取得した画像と似た画像があると、ワークフロー作成者が意図する画像が画面上に表示されていない場合であっても、「画像が表示されている」と判断されることがあります。

「画像の信頼度」の設定で、画像のマッチング度を調整できます。
(画像の信頼度については、下記項目で補足説明いたします)

  • TargetExistsアクションの詳細設定を開きます
  • 信頼度を、95 に設定します(推奨値)

画像がある場合とない場合で分岐するため、TargetExistsアクションのアウトプットを変数に保存します。

  • StoreValueアクション(変数に保存)を設置します
  • 変数名に、以下を設定します
    hasAUTORO
  • 値に、TargetExistsアクションのアウトプットを設定します

参考:変数

オートロくんが見つかった場合の条件分岐を設定します

  • Ifアクション(条件分岐)を設置します
  • 条件に、以下を設定します
    ${hasAUTORO}
  • Textアクション(テキストを作成)を設置します
  • テキストに、「見つかった」を設定します

オートロくんが見つからなかった場合の条件分岐を設定します

  • Ifアクションを設置します
  • 条件に、以下を設定します
    ${!hasAUTORO}
  • Textアクションを設置します
  • テキストに、「見つからなかった」を設定します

# 画面上に対象が存在するか確認する
+target_exists_1:
  action>: TargetExists
  display_name>: '画面上に対象が存在するか確認する'
  mode: IMAGE_RECOGNITION
  target: ''
  windowDetectionTarget: ''
  confidence: 95
  private: false
  meta:
    action:
      disabled: false

# 変数に保存
+store_value_1:
  action>: StoreValue
  display_name>: '変数に保存'
  key: hasAUTORO
  value: +target_exists_1
  setIfNotDefined: false
  private: false
  meta:
    action:
      disabled: false

# 真のとき_見つかった
+if_1:
  if>:
    display_name>: '真のとき_見つかった'
    condition: ${hasAUTORO}
    private: false
  meta:
    action:
      disabled: false
  _do:

    # テキストを作成
    +text_2:
      action>: Text
      display_name>: 'テキストを作成'
      text: '見つかった'
      private: false
      meta:
        action:
          disabled: false

# 真のとき_見つからなかった
+if_2:
  if>:
    display_name>: '真のとき_見つからなかった'
    condition: ${!hasAUTORO}
    private: false
  meta:
    action:
      disabled: false
  _do:

    # テキストを作成
    +text_3:
      action>: Text
      display_name>: 'テキストを作成'
      text: '見つからなかった'
      private: false
      meta:
        action:
          disabled: false

 設定例:画像の表示まで指定した時間だけ待機する

以下のサンプルの作成例を紹介します。

  • PDFファイルを開いて、Adobe Acrobat Readerが起動するまで最大30秒間待機し、起動したら「起動した」というテキストを出力

Adobe Acrobat Reader が起動したかどうかを画像で判定するためには、Adobe Acrobat Reader が起動した状態の画像を取得します。

ここでは、以下の画像が画面上に表示されたら、「Adobe Acrobat Readerが起動した」と見なすことにします。

AUTORO で PDF ファイルを開きます。
なお、「PDF ファイルを開くと、Adobe Acrobat Reader が起動する」とあらかじめPCで設定されてるものとします。

  • SystemOpenアクション(アプリケーションを開く)を設置します
  • ファイルパスに、PDFファイルのローカルパスを設定します

パスの指定方法の参考ページ:AUTORO desktopでローカルファイルを使用する

最大30秒の待機は、「6回、5秒待機を繰り返す」で実現します。

  • Loopアクション(繰り返し)を設置します
  • 回数に、6を設定します

  • TargetExistsアクションを設置します
  • 「ここをクリック」をクリックします
  • 画面が暗くなったら、1に示した「Adobe Acrobat Readerが起動したことを意味する画像」をマウスドラッグで記録します

TargetExistsアクションの詳細設定で、画像の信頼度と、待機時間を設定します。

  • TargetExistsアクションの詳細設定を開きます
  • 信頼度に、95 を設定します(必要に応じて調整してください)
  • 実行後待機に、5000(ミリ秒、5秒)を設定します

画像が見つかったら、繰り返しを抜け、次の処理に進みます。

  • BreakIfアクション(繰り返しを終了する)を設置します
  • 繰り返しを終了する条件に、TargetExistsアクションのアウトプットを設定します

画像が見つかったので、「起動した」というテキストを出力します。

  • Textアクションを設置します
  • テキストに、「起動した」を設定します

# アプリケーションを開く
+system_open_1:
  action>: SystemOpen
  display_name>: 'アプリケーションを開く'
  file: 'C:\Users\xxx\Downloads\hogehoge.pdf'
  waitBefore: 200
  waitAfter: 200
  private: false
  meta:
    action:
      disabled: false

# 繰り返し
+loop_1:
  loop>:
    display_name>: '繰り返し'
    times: 6
    private: false
  meta:
    action:
      disabled: false
  _do:

    # 画面上に対象が存在するか確認する
    +target_exists_1:
      action>: TargetExists
      display_name>: '画面上に対象が存在するか確認する'
      mode: IMAGE_RECOGNITION
      target: ''
      windowDetectionTarget: ''
      confidence: 95
      waitAfter: 5000
      private: false
      meta:
        action:
          disabled: false

    # 繰り返しを終了する
    +break_if_1:
      break_if>:
        display_name>: '繰り返しを終了する'
        condition: +target_exists_1
        private: false
      meta:
        action:
          disabled: false

# テキストを作成
+text_1:
  action>: Text
  display_name>: 'テキストを作成'
  text: '起動した'
  private: false
  meta:
    action:
      disabled: false

 モード「ウィンドウ検出」

TargetExistsアクションには、画像の存在確認であるモード「画像認識」に加え、指定要素の存在を確認するモード「ウィンドウ検出」があります。

モード「ウィンドウ検出」は、アプリケーション上のボタン要素の出現を判定するケースなどで使用できますが、判定対象が要素認識できる必要があります。

  1. 「モード」を「ウィンドウ検出」に設定します
  2. 「ここをクリック」をクリックします
  3. 画面上の判断対象にマウスカーソルを合わせ、要素を認識し黄色い枠が表示されたら、Ctrlキーを押しながら左クリックします。
    (Escキーでキャンセルできます。)
  4. 要素のウィンドウ名とXPathが取得されます。

バージョン 2.16.0 より、要素の指定モードで「ハイブリッド」モードが追加されました。
「画像認識」と「ウィンドウ検出」の両方で対象の有無を確認し、いずれかの方式で検出できた場合に「存在する」と判定します。
ハイブリッド」モードは、以下のアクションで使用できます。

  • KeyboardTypeアクション(キーボード入力)
  • KeyboardTypePasswordアクション(パスワードを入力)
  • MouseClickアクション(マウスクリック)
  • MouseDragアクション(マウスドラッグ)
  • MouseMoveアクション(マウス移動)
  • PasteTextアクション(文字を貼り付け)
  • TargetExistsアクション(画面上に対象が存在するか確認する)

 ※画像の信頼度について

画像の信頼度は、画像を検索する際に、どこまでデータを精密にチェックするかの設定値になります。
0 ~ 100 の間で設定し、数値が高いほど厳密なマッチングが求められます。

ワークフローを実行しながら、画像の信頼度を調整して最適な数値を設定していただく必要があります。
画面全体の画像にも影響されるため、場面ごとに最適値が異なります。

まずは、95 から始めていただき、想定通りにマッチングされない場合は、96979899 と数値を増やしながらご検証ください。
100 はマッチングが厳密すぎるため推奨いたしません。

TargetExists/画像/ウィンドウ/ウインドウ/window/デスクトップ/desktop/

このページは役に立ちましたか?

CONTENTS