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

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

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

loop1

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

loop2

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

loop3

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

loop4

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

loop5

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

loop6.png

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

loop8

 

アプリを繰り返し操作する

アプリの一覧内の行をクリックし、詳細な情報を取得しエクセルへ入力しています。この一連の操作を繰り返し行っています。一覧内の行の指定をインデックスで行うことで、簡単に繰り返しを設定することができます。

行をクリックするアクションで、どの行をクリックするかインデックスを変数参照させます。

1行目をクリックして処理をしたのちに、参照している変数へ1を加算することで2行目が処理されます。

繰り返し処理の最後に終了条件を付けることも必要です。検索結果の件数を繰り返し処理の前に取得し、繰り返し処理内の最後にエクセルに書き込んだ件数と検索結果の件数を比較して、件数が一致したら繰り返し処理をやめるように設定しています

親ロボットに戻る

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

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

[Mainタブ]

・戻り値

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

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

[Advancedタブ]

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

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

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

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

最終セルの情報取得

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

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

[Mainタブ]

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

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

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

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

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

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

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

[Advancedタブ]

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

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

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

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

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

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

まとめ1

Webサイトから取得したデータをエクセルへ貼り付けていきます。

以下ページからデータを取得して、エクセルに貼り付けます。

 

matome9

以下のようなロボットを作成します。

matome1

1.エクセルを新規作成します

matome3

エクセルの新規作成アクション

matome1_1

2.ブランチを追加します

matome4

3.ブラウザを起動して、本マニュアルサイトのトップページを開きます

matome5.png

ブラウザを起動アクション

matome3_1

ページを開くアクション

matome3_2

4.学習コンテンツの「アクション作成編」を開きます

matome6

マウス操作アクション

matome4_1

5.要素のループアクションを使い、繰り返し処理を設定します

matome7

要素のループアクション。開始行を2行目からにしています

matome5_1

6.値の取得を行います

matome8

値の取得アクション。表示されているテキストを取得して、変数に格納します

matome6_1

7.ブランチを追加します

matome10

8.変数の値を加工を使って、エクセルへの貼り付け位置を加工します

matome11

変数の値を加工アクション。エクセルの貼り付け位置の行を加工し、変数へ格納します

matome12

9.エクセルへ値を入力します

matome13

値の入力アクション。行番号は8で使用した変数、入力値は6で使用した変数をそれぞれ参照します

matome9_2

10.ブランチを作成します

matome14

11.エクセルを保存します。アクションを実行した日を取得し、保存先のフォルダ名やファイル名と組み合わせ保存先を指定しています

matome15

matome15_1

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

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

sample001

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

 

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

sample003

 

 

 

 

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

sample004

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

sample005

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

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

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

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

apl_kotu1

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

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

apl_kotu3

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

apl_kotu4

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

apl_kotu5

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

apl_kotu6

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

apl_kotu7

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

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

リリースノート – 0.10.1 (2019-12-02)

機能追加
・変数一覧の変数を右クリックメニューに、「クリアする、初期に戻す、値をセットする、使用しているアクションを確認する」というメニューを追加しました
・値の加工アクション、関数に乱数生成を追加しました
・ROBO_WEBのスケジュールに、同一PCでロボットが実行中の場合、終了までまつ機能を追加しました
・エクセル操作、最終行のセルのアドレス取得機能を追加しました

機能修正
・ROBO_DESIGNのアイコンをカラー化しました
・ブラウザ機能、ブラウザの起動アクションにページロードタイムアウトを追加しました
・アプリ操作、アプリの接続アクションの処理速度を改善しました
・アプリ操作、要素特定全般の精度を大幅に改善しました
・アプリ操作、要素特定全般の処理速度をやや改善しました
・ブラウザ操作、値入力アクションにて、クリック、クリア後、値入力までの待ち時間を追加しました
・アプリ操作全般に対して、中断時にすぐ処理を停止するようにしました
・0.10.1の本バージョンからアプリ操作の要素指定方法を変更したため、アプリ操作画面のadvancedエリアにバージョンを追加しました
・アプリの値入力アクションの文字間のwaitを0.05から0.1に変更しました
・アプリ操作の要素選択時、要素が重なっている場合に選択できないので、クリックするたびに選択要素を変えるように修正しました
・ブラウザを起動アクションのプロファイルのPathを変数設定可能にしました
・ROBO_WEBのadminはすべてのプロジェクトに参加されるように修正しました

バグフィックス
・エラーハンドリングを条件分岐の次の枝に移動にした場合、アクションを開いた段階で条件分岐名が消えている不具合を修正しました
・エクセル保存アクションにて、既に開いてあるファイルと同一名のファイルとして保存しようとした際、保存に失敗し、エクセルが削除されてしまう不具合を修正しました
・エラー発生時の対応で、条件分岐の次のフローに移動を選択した際、基点がクリアされる不具合を修正しました
・ROBO_WEB、プロジェクトメンバー編集画面の保存時、ユーザーの紐づけが解除される不具合を修正しました
・アプリ操作、キー送信と値入力アクションで、要素のアクティブチェックがついてないのに、無条件でアクティブにするようになっていた不具合を修正しました

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

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

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

focus

 

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

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

refocus

 

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

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

textpattern

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

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

class

5.ID付きのxpath

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

is_xpath