要素のループの便利な使い方

要素のループは設定の仕方によっては、より便利に使うことができます。

以下のような各都道府県ごとに分かれている店舗リストがあります。この店舗名をすべて要素のループアクションを使って取得します

loop1

要素のループアクションを作成しました。

loop2

以下の赤で囲った東京の部分しか、ループの対象になりません。大阪や愛知をループの対象に入れるにはどうしたらいいのでしょうか。

loop3

取得範囲の設定を拡張した範囲の要素にすることで、大阪や愛知もループの対象にすることができます。

loop4

またxpathの除外を使えば、ループの対象から外すこともできます。

loop5

xpathを使えば、ループの対象にしたいものだけをピックアップすることもできます。

loop6.png

表示値のフィルターを使っても、ループの対象にしたいものだけをピックアップすることができます。

loop8

 

親ロボットに戻る

カスタムアクション内でエラーが発生したとき、呼び出し元のロボットでエラーとして扱う方法について説明します

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

[Mainタブ]

・戻り値

>正常
カスタムアクションの呼び出し元のロボットへ正常を返します。呼び出し元のロボットはカスタムアクションが正常に処理されたとして後続の処理を行います

>エラー
カスタムアクションの呼び出し元のロボットへエラーを返します。呼び出し元のロボットはカスタムアクションでエラーが発生したとしてエラーハンドリングの設定内容を行います

[Advancedタブ]

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

[エラー発生時の対応タブ]

・エラー時の処理
エラーが発生したときの設定を行います

・エラー時にログ出力
エラーが発生したときにログに出力するか設定します

最終セルの情報取得

エクセル内の値が入っている最終セルの場所を取得する方法について説明します。保存済のエクセルへ取得したデータを追記していくとき、最終行のセルの位置を取得する必要があります。そんなときにこのアクションを使って、最終行のセルの位置を取得します

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

[Mainタブ]

・シート名
名前、インデックス、変数参照から選択して設定を行います。

 >名前
操作対象のシートをプルダウンで選択します

 >インデックス
操作対象のシートは作成された順番にインデックスが定義されています。プルダウンで選択します。

 >変数参照
操作対象のシート名が格納されている変数を設定します

・基点となるセル
最終セルを探すときに、探す処理の基点となるセルを指定します

・最終行
取得した最終行のセルの位置を格納する変数を指定します

・最終列
取得した最終列のセルの位置を格納する変数を指定します

[Advancedタブ]

・ブックインデックス
開いているエクセルのうち、どのエクセルを操作対象にするか選択します。エクセルが開かれた順番にインデックスが定義されます

・実行時にシートを切り替える
アクションを実行したときにシートを表示する場合にチェックを入れます

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

[エラー発生時の対応タブ]

・エラー時の処理
エラーが発生したときの設定を行います

・エラー時にログ出力
エラーが発生したときにログに出力するか設定します

ページをまたがって繰り返し処理を行う

以下のページのように検索の結果の表示がいくつかのページにまたがって表示されており、各ページからデータを取得するにはどうしたらいいでしょうか。

sample001

表示されるページは検索の結果によって異なるため、次頁というリンクをクリックできる限り処理を繰り返すというフローを作成します。(次頁というリンクをクリックできなくなるまで繰り返し処理を行う)

 

作成したフローが以下となります。

sample003

 

 

 

 

ページ内の値取得が終わったら、「次頁」をクリックします。このとき、Webページは次のページが表示されます。

sample004

次に「ブックマークにジャンプ」が実行され、ブックマークへ処理が移ります

sample005

検索結果の表示が最後のページになった場合、次頁が見つからずにエラーになります。このときに鰓発生時の対応の設定を「後続処理をしない」にしておきます。ブックマークにジャンプが実行されず、後続のアクションへ進みます

アプリ操作でうまくいかないときは(要素マッチング)

アプリ操作の設定で要素マッチングにしたときに、操作したい要素をうまく設定するコツを説明します。要素マッチングで操作したい個所をうまく指定できない、または作成したアクションを実行したけどうまくいかない場合に本ページを参照してください。

以下の画面から契約番号を取得します。

apl_kotu1

マッチング方式は要素にします。apl_kotu2

名前は処理の都度変わることが多いです。そのため、使用しない、にしましょう。
また使用しない、にしてうまくいかないときは、名前を正規表現を使って設定してください。

apl_kotu3

設定を変更したときに、全部で何件みつかりました、と表示されていることを確認しましょう。(見つからない場合は、該当する要素が見つかりません、と表示されます)

apl_kotu4

見つかった場合は、操作対象にフォーカスをクリックして、操作したい個所にフォーカスが当たることを確認しましょう。

apl_kotu5

以下のように複数件見つかった場合は、要素インデックスの値を変更します。1件しか見つからなかった場合は、要素インデックスは「0」になっています。

apl_kotu6

それでもうまくいかないときは、キャッシュクリアにチェックを入れたり、要素をアクティブにするにチェックを入れてアクションを実行してみましょう

apl_kotu7

またアクションは作成されるが、処理が空振りしたような状態(たとえば値が入力されない)の場合、作成したアクションをステップ実行してみてください。作成時は空振りしたアクションが正常に実行されることがあります。

それでもうまくいかないときは、マッチング方式を画像にしてアクションを作成していただくか、もしくはサポートまでご相談ください。

ブラウザ操作で要素をうまく設定するコツ

1.要素にフォーカスボタンを使う

設定を変更したら、要素にフォーカスを行って確認しましょう

focus

 

2.再フォーカスで要素を再設定

編集画面を開いた状態で、ブラウザ内の操作したい個所を選択し、右クリックすると操作個所の再設定ができます

refocus

 

3.テキストパターンによる設定

画面に表示されている文字で操作個所を指定することもできます。テキストパターンをうまく使いましょう

textpattern

4.classは基本的に使わない

アクションを作成したときにAttibuteに自動的に設定される値としてclassという値があります。classは操作個所のデザインの設定を表していますが、デザインは変わることが多いので、classは空白にするのをおすすめします

class

5.ID付きのxpath

操作個所のHTMLにIDがある場合、アクションを作成したときにxpathはID付きの設定になります。IDがよく変わるサイトであれば、チェックを外して指定をするのをおすすめします。

is_xpath

この画像が消えるまで待つ(画像処理)

アプリケーションの画面内から特定のオブジェクトが消えるまで、ロボットの処理を待機させることができます

 

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

[Mainタブ]

・要素が見つかるまでのタイムアウト(秒)
設定した時間まで、選択した画像をロボットが探し続けます

・画像一致率
ロボットが選択した画像を探すときの一致率を設定します。一致率を下げると選択した別の画像を認識することがあります。表示されていないときは、画面サイズ設定を変更します

・画面を読込み
接続中のアプリケーションを再読み込みします。アプリデザインに表示されているアプリケーションの画像と、実際のアプリケーションの画像が異なっている場合に使用します。アプリケーションによってはアクティブな時と非アクティブな時で表示が異なる場合があります。その場合は5秒後、10秒後、30秒後に再読込みを選択した上で対象のアプリケーションをアクティブにします

・操作対象にフォーカス
選択した画像にフォーカスを当てます。選択した画像をロボットが正しく認識していることを確認するときに使います。アプリケーションによってはアクティブな時と非アクティブな時で表示が異なる場合があります。その場合は5秒後、10秒後、30秒後にフォーカスを選択した上で対象のアプリケーションをアクティブにします

[advancedタブ]

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

[エラー発生時の対応タブ]

・エラー時の処理
エラーが発生したときの設定を行います

・エラー時にログ出力
エラーが発生したときにログに出力するか設定します

変数へセットできるシステム値

各アクションで変数参照するときや、変数の値を加工アクションで変数へ値セットするときなどに、変数へセットできるシステム値は以下の通りです。

  • キーボード
    ・ENTER
    キーボードのエンターキーが入力されます。変数の値に改行をいれるときに使用します

    ・TAB
    キーボードのタブが入力されます。変数の値にタブ区切りをいれるときに使用します

  • 時刻関係
    ・%%TODAY%%
    ロボットの処理を実行している日を取得します

    ・%%NOW%%
    ロボットの処理を実行している日時を取得します

  • フォーマット関係
    ・%%年月日%%
    ロボットの処理を実行している日を取得します

    ・%%時分秒%%
    ロボットの処理を実行している時刻を取得します

    ・%%年%%
    ロボットの処理を実行している年を取得します

    ・%%月%%
    ロボットの処理を実行している月を取得します

    ・%%日%%
    ロボットの処理を実行している日を取得します

    ・%%時%%
    ロボットの処理を実行している時を取得します

    ・%%分%%
    ロボットの処理を実行している分を取得します

    ・%%秒%%
    ロボットの処理を実行している秒を取得します

    ・%%年月日時分秒%%
    ロボットの処理を実行している年月日時分秒を取得します

    ・%%PROJECT_NAME%%
    処理中のロボットが所属しているプロジェクトを取得します

    ・%%ROBOT_NAME%%
    処理中のロボット名を取得します

  • ログ関係
    ・%%LOG_HEADER%%
    処理中のロボットが出力したログの概要です

    ・%%LOG_DETAIL%%
    処理中のロボットが出力したログの詳細です

    ・%%USER_LOG%%
    処理中のロボットが出力するように設定したログです。
    その他のログ出力アクションで設定したものを取得できます

  • システム値
    ・%%CURRENT_URL%%
    処理中のロボットがブラウザで表示しているWebサイトのURLを取得します

    ・%%ERROR_COUNT%%
    処理中のロボットで発生したエラーの件数の合計を取得します

    ・%%DOWNLOAD_FOLDER_PATH%%
    ロボットがWebサイトからファイルをダウンロードしたときに、デフォルトで保存するフォルダを取得します

    ・%%PROJECT_NAME%%
    処理中のロボットが所属しているプロジェクトを取得します

    ・%%ROBOT_NAME%%
    処理中のロボット名を取得します

    ・%%LOOP_COUNT%%
    要素のループなど、繰り返しアクションで何回目の繰り返し化を取得します

    ・%%実行時間_秒%%
    ロボットが処理を開始してからの経過した秒を取得します

    ・%%実行時間_分%%
    ロボットが処理を開始してからの経過した分を取得します

    ・%%実行時間_時分秒%%
    ロボットが処理を開始してからの経過した時分秒を取得します

関数一覧

変数の値を加工アクション内の文字操作で使用できる関数の一覧とそれぞれの機能は以下の通りです。

  • Mid
    文字列から文字を切り出します。
    開始位置・・・文字列から切り出す開始位置を設定します。変数参照できます
    文字数・・・開始位置から切り出す文字の数を設定します。変数参照できます
  • Left
    文字列から文字を切り出します。
    文字数・・・文字列の左から切り出す文字の数を設定します。変数参照できます
  • Right
    文字列から文字を切り出します。
    文字数・・・文字列の右から切り出す文字の数を設定します。変数参照できます
  • Ltrim
    文字列の左側のスペースを削除します
  • Rtrim
    文字列の右側のスペースを削除します
  • Trim
    文字列の左右のスペースを削除します
  • Find
    文字列から文字を検索し、見つかった場所を取得します。
    検索する文字・・・文字列の左から検索する文字を指定します。変数参照できます
  • Rfind
    文字列から文字を検索し、見つかった場所を取得します。
    検索する文字・・・文字列の右から検索する文字を指定します。変数参照できます
  • Length
    文字列の長さを取得します
  • ディレクトリパス取得
    ファイルパスからフォルダ名だけを取得します
  • ファイル名取得
    ファイルパスからファイル名だけを取得します