【アプリ操作】画像を探す方法、見た目で判定と特徴で判定の違いとは?

2023年11月にリリースされるJobAuto0.10.10では、アプリ操作のマッチング方式「画像」において、画像を探す方法が追加されます。

従来の画像を探す方法に、特徴量を使って探す方法が追加されます。これで画像を探す方法を選択できるようになりました。

見た目で判定

従来の画像を探す方法です。画像そのものを見た目で探しに行く方法です。

操作したい個所をドラッグして選択する方法で、画像で指定しています。そしてアクション実行時にその画像をロボットが探しに行き、操作を行います。

しかし弱点が、、、、

見た目で判定では、作成したPCと実行するPCで解像度が異なる場合に、画像が見つからないというエラーが発生します。画像マッチングを使ったロボットは安定して動かない、という問題がありました。

特徴で判定

操作したい個所をドラッグして選択する方法で画像を指定するところまでは同じです。ロボットが指定した画像を探しに行く方法が見た目で判定とは違います。

画像の特徴で探す

ロボットは指定した画像の特徴を割り出します。割り出した特徴を使って指定された画像を探し、操作を行います。

安定して動く

解像度が少々変わった(大きく変わってしまった場合は画像がないとなります)としても、画像が見つかりません、というエラーが発生しなくなります。

【アプリ操作】値の入力が空振りするときは?

アプリ操作の値の入力アクションを使って、アプリへの値の入力を行っています。スケジュール実行していて、たまに値が入力されず空振りすることはないでしょうか。

そのようなことが起きる場合の対処方法をご説明します。

なぜ空振りが発生するのか?

そもそも値の入力の空振りはなぜ発生するのでしょうか。

それは値を入力するときに、値を入力する個所からカーソルがはずれた状態が発生しているからです。

アプリ 値 入力 空振り
カーソルが当たっている状態
アプリ 値 入力 空振り
カーソルが外れている状態。このときに空振りが発生

ではなぜカーソルが外れてしまうのかを、厳密に特定することは非常に困難です。

原因はともかく対策を打ちましょう

空振りが発生した場合の対策は以下のような方法が考えられます。

1.後続のアクションでエラーが発生したら値入力へ戻り再入力

値の入力がされていないことが原因で、後続のアクションでエラーが発生している、とします。

このような場合は、以下の対応が考えられます。

・値入力アクションの直前にブックマークを作成

・エラーが発生する後続のアクションのエラー発生時の対応の設定で条件分岐へすすむと設定

・すすんだ条件分岐のなかへ値入力アクションの直前に作成したブックマークへすすむジャンプを作成

アプリ 値 入力 空振り
エラーが発生したら再入力するフロー

2.入力後に値を取得し入力されているかをチェック、されていなければ値入力へ戻り再入力

値の入力アクションのあとに値が入力されたかチェックする方法です。

・値入力アクションの直前にブックマークを作成

・値の取得アクションを使い、入力した値を取得

・判定処理を行い、取得した値が空白か判定。空白の場合は条件分岐へ進むと設定

・すすんだ条件分岐のなかへ値入力アクションの直前に作成したブックマークへすすむジャンプを作成

アプリ 値 入力 空振り
チェックを行い空白であれば再入力するフロー

【0.10.9で不具合】要素マッチングの値取得の取得値に一部のアプリで表示されないことが

2023年4月末にリリースしたバージョン0.10.9に不具合があることがわかりました。大変ご迷惑をおかけいたします。

以下手順をご確認のうえ、ご対応いただけますようお願いいたします。

不具合が発生しないとき

バージョン0.10.8以前では発生しない

バージョン0.10.8から前のロボデザインでは発生しません。

バージョン0.10.9で発生

バージョン0.10.9のロボデザインで発生します。スケジュール実行では発生しません。

不具合が発生するとき

アプリ操作でマッチング方式で「要素」を使って値の取得アクションを使って値を取得するときに発生します。

発生する事象

値を取得アクションを作成するときに、取得値を確認しながら取得対象を選択します。この取得値になにも表示されないことが発生します

要素 値取得 アプリ 表示されない

一部のアプリで発生します

この事象はすべてのアプリで発生するわけではありません。どのようなアプリで発生するのか現在確認中です(2023.5.22時点)

不具合の回避策

以下のいずれかの方法で回避することができます。

1.0.10.9を使う場合、デバッグ実行で確認する

0.10.9を使う場合は以下の方法で対応してください。

1-1.値の取得アクションを作成します。このとき、高度な設定タブを確認し、名前に値が入っていれば値を取得できる個所であることが確認できます。

以下は申請コード「1701」を取得するアクションを作成しているところです

要素 値取得 アプリ 表示されない
要素 値取得 アプリ 表示されない

1-2.アクションを作成し、デバッグ実行を行い、変数に値が入っているかを確認します。もし取得できなければ、取得対象を変更します

2.0.10.8を使う

0.10.8では本事象は発生しません。0.10.8でアクションを作成してください。また0.10.8で作成したアクションは0.10.9で正常に動きます。

【アプリ操作】アプリの起動方法とそれぞれの違いについて

ロボットで操作したいアプリを起動のやり方は3種類あります。それぞれのやり方や注意点についてご説明します。

アプリを開くアクションを使った起動

ロボットで操作するアプリをアプリを開くアクションで起動する方法です。アプリを開くアクションについての説明はこちらです。

プログラムの個所にアプリが保存されているフォルダと実行ファイル名を設定します。

アプリ 起動方法 違い 操作

注意点1.起動できないアプリがある

この方法で起動できないアプリが存在します。その場合は、後述のいずれかの方法で起動してください。

注意点2.PCによってはアプリが保存しているフォルダが違う

ロボットを実行するPCによっては、起動するアプリの実行ファイルが保存されているフォルダが違うことがあります。

注意点3.スケジュール実行で起動したアプリは自動的に閉じられる

スケジュール実行でこの方法で起動したアプリは、スケジュール実行が終わると自動的に閉じられます。接続中のアプリを終了やすべてのアプリを終了アクションを実行しなくても、自動的に閉じられます。


タスクバーの中のショートカットで起動

タスクバーの中にあるアプリのショートカットをクリックして起動する方法です。アプリ接続アクションでタスクバーに接続し、ショートカットをクリックするアクションを実行します。

アプリ 起動方法 違い 操作

注意点1.PCによってはショートカットがないことが

ロボットを実行するPCによっては、アプリのショートカットがないことがあります。ロボットを実行する前に確認し、なければ作成しておきましょう。

注意点2.スケジュール実行で起動したアプリは自動的に閉じられない

スケジュール実行でこの方法で起動したアプリは、スケジュール実行が終わると自動的に閉じられません。閉じたい場合は、接続中のアプリを終了やすべてのアプリを終了アクションを使います。


デスクトップのショートカットで起動

デスクトップにあるアプリのショートカットをクリックして起動する方法です。アプリ接続アクションでデスクトップに接続し、ショートカットをクリックするアクションを実行します。

アプリ 起動方法 違い 操作

注意点1.PCによってはショートカットがないことが

ロボットを実行するPCによっては、アプリのショートカットがないことがあります。ロボットを実行する前に確認し、なければ作成しておきましょう。

注意点2.スケジュール実行で起動したアプリは自動的に閉じられない

スケジュール実行でこの方法で起動したアプリは、スケジュール実行が終わると自動的に閉じられません。閉じたい場合は、接続中のアプリを終了やすべてのアプリを終了アクションを使います。

注意点3.ショートカットが隠れているかも

スケジュール実行を行ったときに、デスクトップのショートカットにほかのアプリがかぶさってしまい、クリックが空振りする可能性があります。常に表示されているデスクトップの位置へショートカットを移動させておきましょう。

【0.10.9で不具合】画像マッチングでアクションを作成するとき

2023年4月末にリリースしたバージョン0.10.9に不具合があることがわかりました。大変ご迷惑をおかけいたします。

以下手順をご確認のうえ、ご対応いただけますようお願いいたします。

不具合が発生しないとき

バージョン0.10.8以前では発生しない

バージョン0.10.8から前に作成したアクションでは発生しません

バージョン0.10.9で発生

バージョン0.10.9で新しくアクションを作成するときに発生します。

不具合が発生するとき

アプリ操作でマッチング方式で「画像」を使ってアクションを新しく作成するときに、画像が見つかりませんというかならずエラーが発生します。ほかのマッチング方式では発生していません。

操作対象にフォーカスを行った場合

アクションを実行した場合

不具合の回避策

不具合が発生しないようにアクションを作成する回避策は以下の手順で行います。

1.アクションを作成

操作したい個所をドラッグして選択し、右クリック、作成したいアクションを選択します。

2.ここにフォーカスをしなおすを実行

ドラッグして選択した操作したい個所で右クリック、ここにフォーカスしなおすをクリックしてください。

フォーカスが当たるようになります

【アプリ操作】すべてのアプリを終了

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

起動中のすべてのアプリを終了する方法について説明します。


★アクションの作成方法


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

アクション設定画面の設定項目についての説明は以下の通りです。

1.基本設定

1-1.強制終了する

アプリを強制的に終了させる場合にチェックを入れます。保存しますか、などの確認メッセージが表示させずに強制的に終了します。

1-2.対象となるアプリケーション

デフォルトですべてのアプリケーションが選択されています。

・接続中のアプリケーション

アプリ接続で接続中のアプリケーションが終了します

・すべてのアプリケーション

PCで起動中のすべてのアプリケーションが終了します

1-3.終了までの待ち時間(秒)

アクションを実行してからアプリを終了するまでの時間を設定します。


2.高度な設定

2-1.アクション有効

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


3.エラー発生時の対応

3-1. エラー時の処理

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

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

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

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

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

【アプリ操作】この範囲内の指定の文字に対してマウス操作

★アクションの説明、概要(0.10.8から)

文字を探す範囲をして、そして操作したい個所に表示されている文字による指定を行います。そして指定した箇所をマウスで操作する方法について説明しています。

GoogleのAPIを使って変換をしています。OCR変換する文字はJobAutoからGoogleへ送信されます。ご承知おきください。Googleへインターネット経由で通信を行います。インターネットへの接続をプロキシサーバを介して行っている環境の場合は、プロキシの設定を行ってください。

またインターネットでアクセス先のドメインに制限がかかっている場合はvision.googleapis.comの制限を解除してください。


★アクションの作成方法


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

アクション設定画面の設定項目についての説明は以下の通りです。画面を読み込みと操作対象にフォーカス、背景色についてはこちらをご覧ください。

1.基本設定

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

設定した時間まで、指定した文字をロボットが探し続けます。

1-2.クリックパターン

クリックの種類を選択します。

・クリック

マウスのクリックを行います。

・ダブルクリック

マウスのダブルクリックを行います。

・右クリック

右クリックを行います。

・マウス移動

カーソルを移動します。

・マウスダウン

マウスの左クリックを押しっぱなしにします。

・マウスアップ

マウスの左クリックを押しっぱなしをやめます。

・上スクロール

マウスを使って上にスクロールします。

・下スクロール

マウスを使って下にスクロールします。

1-3.対象となる値

画面内から探す文字を入力します。変数参照可能です。

・検索ボタン

対象となる値に設定された文字を画面内から探します。

1-4.インデックス

設定した値で1つの文字に絞り込めない場合、何番目の文字を操作するか指定します。1番目の場合、0を設定します。

1-5.この範囲で探す(範囲設定方法)

指定した文字を探す範囲を設定します。

・座標

画面内の座標で範囲を指定します。アクションを作成したPCと異なるPCで実行したときに、PCの画面の大きさの違いで設定した座標がずれることがあります。

・比率

画面全体に対しての比率で範囲を指定します。アクションを作成したPCと異なるPCで実行したとき、PCの画面の大きさが違っても探す範囲がずれることはありません。ただアプリ全体の大きさが変わるとずれることがあります。

・全体

範囲を画面全体にします。

・左上

画面左上からの場所を示す数値です。範囲指定方法によって、数値が異なります。変更可能です

・右上

画面右上からの場所を示す数値です。範囲指定方法によって、数値が異なります。変更不可能です

・左下

画面左下からの場所を示す数値です。範囲指定方法によって、数値が異なります。変更不可能です

・右下

画面右下からの場所を示す数値です。範囲指定方法によって、数値が異なります。変更可能です

1-6.プロキシ(0.10.12から追加)

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

・Proxyを使用する

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

・Proxyを使用しない

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

1-7.変換時のオプション(0.10.13から追加)

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

・日本語を優先しない

日本語を優先しないでOCR変換します

・日本語を優先する

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

1ー8.見つかった文字一覧

対象となる値へ設定した文字が画面内にあるか、検索ボタンで探すことができます。このときにOCRで解析した結果が表示されます。設定した文字が探せない場合に、文字を変更するときの参考にしてください。

範囲 文字 マウス操作

2.高度な設定

2-1.アクション有効

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

2-2.一致したイメージショットをログに残す ※0.10.10から

チェックを入れた状態でスケジュール実行を行うと、ログに処理対象の文字がイメージとして表示されます


3.エラー発生時の対応

3-1. エラー時の処理

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

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

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

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

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

【アプリ操作】【表】値入力

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

画面内の操作したい個所を要素による指定を行います。そして指定した箇所をマウスで操作する方法について説明しています。


★アクションの作成方法


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

アクション設定画面の設定項目についての説明は以下の通りです。画面を読み込みと操作対象にフォーカス、背景色についてはこちらをご覧ください。

1.基本設定

1-1.行番号

表内の何行目を操作するか設定します。変数参照可能です。

1-2.列番号

表内の何列目を操作するか設定します。変数参照可能です。

1-3.値入力

入力する値を設定します。変数参照可能です。またシステム値を使用可能です。システム値の説明はこちら。

・マウスとキーボード操作

設定した表の場所へ マウスとキーボードを使って入力します。入力する値が小文字の場合、キーボートがCAPSLOCK状態の場合でも小文字で入力されます

ステップ1 クリック操作

設定した表の場所を選択するときの方法を選択します。

・クリック

クリックして選択します。

・ダブルクリック

ダブルクリックして選択します。

ステップ2 キー送信 データクリア

選択した箇所のデータをクリアする方法を選択します。

・Ctrl+A バックスペース

選択中の個所を全選択し、バックスペースでデータをクリアします。

・ Ctrl+A DELETE

選択中の個所を全選択し、DELETEキーでデータをクリアします。

・何もしない

なにもしません。

・ バックスペース

選択中の個所をバックスペースでデータをクリアします。

・ DELETE

選択中の個所をDELETEキーでデータをクリアします。

ステップ3 キー送信 入力

・クリップボードからCtrlV

選択した箇所へCtrl+Vを使って入力します。

アプリ操作の値入力では「~」チルダはEnterを押したときと
同じ動きをします。そのため、ファイル名の入力が途中で終わってしまう動きをします。

「~」チルダを入力する可能性がある場合、
クリップボードからCtrl+Vをお使いください。

・キーボード入力

キーボードを使って入力します。

・何もしない

なにもしません。

ステップ4 キー送信 エンター

値を入力後の操作を設定します。

・エンター

エンターキーを送信します。

・タブ

タブキーを送信します。

・何もしない

なにもしません。


2.高度な設定

2-1.アクション有効

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

2-2.事前に表を再読み込み

このアクションが実行される直前に表を再読込する場合は、チェックを入れます。


3.エラー発生時の対応

3-1. エラー時の処理

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

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

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

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

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

【アプリ操作】【表】値取得

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

画面内の操作したい個所を要素による指定を行います。そして指定した箇所をマウスで操作する方法について説明しています。


★アクションの作成方法


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

アクション設定画面の設定項目についての説明は以下の通りです。画面を読み込みと操作対象にフォーカス、背景色についてはこちらをご覧ください。

1.基本設定

1-1.行番号

表内の何行目を操作するか設定します。変数参照可能です。

1-2.列番号

表内の何列目を操作するか設定します。変数参照可能です。

1-3.格納先

取得した値の格納先の変数を設定します。

1-4.値取得方式

値を取得する方式を設定します。

・OCR読み込み

設定した表の場所から画像で文字を取得します。そして取得した文字をOCR変換します。

文字のOCR変換はGoogleのAPIを使って変換をしています。OCR変換する文字はJobAutoからGoogleへ送信されます。ご承知おきください。Googleへインターネット経由で通信を行います。インターネットへの接続をプロキシサーバを介して行っている環境の場合は、プロキシの設定を行ってください。

またインターネットでアクセス先のドメインに制限がかかっている場合はvision.googleapis.comの制限を解除してください。

・取得値

OCRをかけた結果が表示されます

プロキシ(0.10.12から追加)

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

・Proxyを使用する

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

・Proxyを使用しない

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

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

・Proxyを使用する

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

・Proxyを使用しない

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

変換時のオプション(0.10.13から追加)

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

・日本語を優先しない

日本語を優先しないでOCR変換します

・日本語を優先する

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

・マウスとキーボード操作

設定した表の場所から マウスとキーボードを使って取得します。

ステップ1 クリック操作

設定した表の場所を選択するときの方法を選択します。

・クリック

クリックして選択します。

・ダブルクリック

ダブルクリックして選択します。

ステップ2 キー送信 全選択

選択した箇所にキーを送信するかを選択します。

・Ctrl+A

選択中の個所が全選択になります。

・何もしない

なにもしません。

ステップ3 キー送信 コピー

・Ctrl+C後クリップボードから取得

選択した箇所をコピーし、クリップボードから設定した変数に格納します。

・何もしない

なにもしません。

ステップ4 キー送信 エスケープ

値を取得後の操作を設定します。

・ESCキー

ESCキーを送信します。

・何もしない

なにもしません。


2.高度な設定

2-1.アクション有効

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

2-2.事前に表を再読み込み

このアクションが実行される直前に表を再読込する場合は、チェックを入れます。


3.エラー発生時の対応

3-1. エラー時の処理

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

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

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

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

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

【アプリ操作】【要素】表として操作する

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

アプリの画面内の縦線、横線で区切られている個所を表として認識させます。1つの要素として認識した表をこのアクションを使っていくつかのセルに分割し認識します。


★アクションの作成方法


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

アクション設定画面の設定項目についての説明は以下の通りです。画面を読み込みと操作対象にフォーカス、背景色についてはこちらをご覧ください。

1.基本設定

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

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

1-2.閾値

表としてどのくらいの精度で認識するかを設定します。

1-3.余白の設定

表として認識する要素内の余白の設定を行います。

1-4.最大行数取得(0.10.10から追加)

表として操作する範囲に行数が何行あるかを取得します

1-5.対象の要素

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


2.高度な設定

2-1.アクション有効

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

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

処理速度をあげるために要素の情報をもっています。その情報をクリアして再取得するときにチェックを入れます。アプリの画面表示に変化があった後に行うアクションの場合は、チェックを入れておきましょう。

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

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

2-4.名前

要素を名前で指定するときに設定します。変数参照可能です。
変数参照する場合はチェックボックスにチェックを入れてから、参照する変数の設定を行います。
こちらも参考にしてください。

2.アプリ操作でうまくいかないときは(要素マッチング)1ー名前で正規表現を使う

2-5.クラス

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

2-6.タイプ

要素をタイプで指定するときに設定します。
こちらも参考にしてください。

2-7.AID

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

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

ここまで設定した内容で1つの要素に絞り込めない場合、何番目の要素を操作するか指定します。1番目の場合、0を設定します。変数参照可能です。変数参照したときに変数の中身が空だった場合など、インデックスが空のときは自動的に0が設定されます。


3.エラー発生時の対応

3-1. エラー時の処理

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

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

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

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

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