Enterprise Blue Ocean ◮

神谷町RPAブログ

  • [特集] Blue Prism の製品概要がよくわかるWebページ動画取材記事
  • [特集] Blue Prism DX にある、Blue Prismの部品一覧はこちら
  • [特集] Blue Prism でExcelを操作する記事はこちら
  • [特集] Blue Prism のベストプラクティス記事はこちら
  • Blue PrismのQ&Aを掲示板(teratail)でやりませんか?

Blue Prismで、表にあるリンクを順番にクリックする

先日のポストで、Blue Prismは表形式のデータをとても簡単に取得できる…ことを示しました。

ebo.hatenablog.com

しかしながら、現実の業務では、表形式のデータ読み取りだけでなく、表の中に並ぶリンクを順番にクリックする…というケースもあります。
例えば以下のページをご覧ください。

f:id:EnterpriseBlueOcean:20180626161539p:plain

このページは、米国株の値上がり率ランキングを表示しています。
一度に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回の繰り返し操作を定義できます。

 

動的パスを活用する(実装編)

実際のやり方は簡単です。まず、ひとつのリンクをスパイして

f:id:EnterpriseBlueOcean:20180627165811p:plain

パスを動的(Dynamic)にします。

f:id:EnterpriseBlueOcean:20180627165825p:plain

次に、繰り返し操作の中で、動的にTR(...)の数字を変更しながらパスとして指定します。
たとえば計算ステージで、以下のように設定します。

f:id:EnterpriseBlueOcean:20180630123356p:plain

数字の部分を変数にするわけですね。あとは、パスを動的にしたエレメントを選んだ際に、

f:id:EnterpriseBlueOcean:20180630123533p:plain

パラメータを選んで、動的にしたパスを設定すればOKです。

f:id:EnterpriseBlueOcean:20180630123548p:plain

 

動かした結果はこちら。

やったぜ。

 

まとめ

Blue Prismでは、同じような操作の繰り返しをスマート(効率的/メンテが容易)に実現する方法があります。
その一つが動的パスです。これを使うと、例えば表の中に埋め込まれたリンクを連続してクリックさせることができます。
動的パスと繰り返しについては、Browser Automation Guideにも記述があります。日本語化済なので、併せてざっと確認しておくと、理解が深まると思います。

Browser Automation Guide (Japanese) (Log in | Blue Prism Portal)