Coopelでテーブルデータを取得する

今回は、DeNA Coopelを使って、下のようなテーブル(<table></table>)全体のデータ(文字列)を取得するためのシナリオの作り方を紹介します。

ここでは「テーブルデータを取得」アクション、及び「各要素について繰り返す」アクションが重要な役割を担います。シナリオ全体としては意外とシンプルで、最小限の構成で考えた場合、下記のようなアクションが3つだけのシナリオで実現できてしまいます。それでは早速シナリオを作成して行きましょう。

[toc]

最小限の構成のシナリオ

ここで紹介するのは、テーブルデータを取得するための最小限の構成のシナリオです。正しくデータが取得できていることを確認したり、取得したデータを使って他の処理を行うシナリオについては、別の記事で紹介します。

URLにアクセス

左側のアクション選択エリアで、基本操作 ⇒ ブラウザ にある「URLにアクセス」アクションをマウスでつかみ、ウィンドウ真ん中のシナリオエリアにドロップしてください。

続いて、右側の設定エリアで、URLを入力してください。画像の例では https://it-concierge.biz/table.html としていますが、自動化したい対象のURLを入力してください。

ここで、URLに http://127.0.0.1/ や http://localhost/ など、Coopelを実行していると同じコンピューターを指定する場合は、Coopelのローカル実行の設定が必要です。下の画面のように、「シナリオ設定」で「ローカル実行」をONにしてください。

この設定をしないと、下の画面のように、「エラー発生のため、処理が中断されました」「can’t access local server.」というエラーが発生します。

今回の https://it-concierge.biz/ のように、外部のウェブサーバーにアクセスする場合は、「ローカル実行」はデフォルトのOFFのままにします。

「ブラウザの画面を表示」は、ウェブサーバーがローカルかそうでないかに関わらず、ONにしておくのがいいでしょう。シナリオ作成中、正しく実行できているかを、画面を見ながら確認できます。

テーブルデータを取得

左端のアクションを選択するエリアで、検索窓に「テーブル」と入力し、「テーブルデータを取得」アクションをマウスでつかみ、真ん中のシナリオエリアにドロップしてください。

右の設定エリアの「ブラウザ」で、先の手順で作成したアクション「URLにアクセス」を選択します。続いて、すぐ下の「要素」にある「指定」ボタンをクリックします。

Coopelの「Selector Helper」ウィンドウが起動します。テーブルまわりでマウスを動かし、テーブル全体に色が付くところを探します。続いて、そのままマウスをクリックすると、選択範囲が決定し、「Selector Helper」ウィンドウが閉じます。

ちょっとでもマウスがずれてしまうと、意図したのとは違う範囲が選択されてしまうので、ちょうどいい場所を探すときはマウスをゆっくり動かします。また、マウスをクリックするときも、マウスが動かないよう注意してください。

テーブル全体をなかなか選択できないときは、一度ウィンドウ全体が選択された状態(下の②)にして、そこからテーブル内のセルに向けてマウスをゆっくり移動させるといいでしょう。行き過ぎるとセルが一個だけ選択された状態(下の③)になりますが、②と③との間に、テーブル全体が選択される(上の①)ポイントがあります。

「Selector Helper」ウィンドウが閉じてCoopelの画面に戻ると、「要素」に値が入っていることが確認できます。その下の「選択要素のプレビュー」で、テーブル全体が選択されていることを確認します。

右の設定エリアの「戻り値にラベルを付ける」で、テーブルの列の数だけ、ラベルを設定します。複数のラベルを作るときは、「ラベルを追加」をクリックします。

各要素について繰り返す

基本操作 ⇒ 制御処理 の「各要素について繰り返す」アクションをマウスでつかみ、真ん中のシナリオエリアにドロップしてください。

右の設定エリアで「受け取るリスト」内の「タイプのアクション結果を参照」ボタンをクリックし、真ん中のシナリオエリアの「テーブルデータを取得」をクリックします。

「受け取るリスト」に「テーブルデータを取得」が入ります。

「戻り値にラベルを付ける」で、先ほどと同じように、テーブルの列に対応したラベルを追加します。

「テーブルデータを取得」アクションのときと「各要素について繰り返す」アクションのときとで、2度同じようなラベルの設定をしており、面倒に感じられるかもしれませんが、前者は「各要素について繰り返す」アクションから参照するため、後者はテーブル一行ずつのデータを取り出すためで、それぞれ必要なものなので、両方の設定をしてください。

以上で、テーブル全体の値を取得するシナリオが完成しました。ただし、この状態では、取得した値の内容を確認することはできません。

まとめ

Coopelでテーブルからデータを取得するシナリオを作る手順を説明しました。ここで重要な機能を果たすのは、「テーブルデータを取得」アクションと「各要素について繰り返す」アクションです。

正しくデータを取得できていることを確認するには、取得した値をメールで送信したり、エクセルにペーストしたりします。これについては別の記事で説明します。

RPACoopel