Blue Prismで、表にあるリンクを順番にクリックする
先日のポストで、Blue Prismは表形式のデータをとても簡単に取得できる…ことを示しました。
しかしながら、現実の業務では、表形式のデータ読み取りだけでなく、表の中に並ぶリンクを順番にクリックする…というケースもあります。
例えば以下のページをご覧ください。
このページは、米国株の値上がり率ランキングを表示しています。
一度に50件ほど表示される設定で、上の画像では51~100件目が表示されています。
左から順に「順位」、「名称・ティッカー・市場」、「取引値」…という感じで列が並んでいます。
「名称・ティッカー・市場」には、リンク(押すと別画面に遷移)が並んでいます。
Blue Prismで、これを縦に一個ずつ押していくには、どうすればいいでしょうか。
50個のリンクを、すべて1個ずつスパイしていく…?
…いやまぁ、そういうやり方もできなくはないですが、、
スマートじゃない(効率的ではない/メンテしにくい)ので、これは却下。
そうじゃないんだ…
動的パスを活用する(構想編)
よりスマートなやり方は、動的パスを活用することです。
50個のリンクのパス(それぞれのリンクがHTMLの中のどこにあるかを示す位置情報)は、以下のような構成になっているので、
/HTML/BODY(1)/DIV(1)/DIV(2)/DIV(2)/DIV(1)/DIV(3)/TABLE(1)/TBODY(1)/TR(1)/TD(2)/DL(1)/DT(1)/A(1)/STRONG(1)
/HTML/BODY(1)/DIV(1)/DIV(2)/DIV(2)/DIV(1)/DIV(3)/TABLE(1)/TBODY(1)/TR(2)/TD(2)/DL(1)/DT(1)/A(1)/STRONG(1)
/HTML/BODY(1)/DIV(1)/DIV(2)/DIV(2)/DIV(1)/DIV(3)/TABLE(1)/TBODY(1)/TR(3)/TD(2)/DL(1)/DT(1)/A(1)/STRONG(1)
...
太字下線にしたTR(...)の数字を動的に変更し、パスとして設定してからリンクをクリックする。これを繰り返せば、スマートに50回の繰り返し操作を定義できます。
動的パスを活用する(実装編)
実際のやり方は簡単です。まず、ひとつのリンクをスパイして
パスを動的(Dynamic)にします。
次に、繰り返し操作の中で、動的にTR(...)の数字を変更しながらパスとして指定します。
たとえば計算ステージで、以下のように設定します。
数字の部分を変数にするわけですね。あとは、パスを動的にしたエレメントを選んだ際に、
パラメータを選んで、動的にしたパスを設定すればOKです。
動かした結果はこちら。
やったぜ。
まとめ
Blue Prismでは、同じような操作の繰り返しをスマート(効率的/メンテが容易)に実現する方法があります。
その一つが動的パスです。これを使うと、例えば表の中に埋め込まれたリンクを連続してクリックさせることができます。
動的パスと繰り返しについては、Browser Automation Guideにも記述があります。日本語化済なので、併せてざっと確認しておくと、理解が深まると思います。
Browser Automation Guide (Japanese) (Log in | Blue Prism Portal)