Get Attribute(属性を取得)についてお話します
慣れてくると、このアクティビティも良く使います。
Attributeは属性という意味です。

“aaname”=elementの名前
“tableRow”=行番号
等です。

例えばこんな場面でつかいます。

aanameで対象のelement要素を探し、行番号をGet取得する。
Clickアクティビティで、Getした行番号をクリックする。

実際のフローはこんな感じです。
①対象名簿(対象者と処理内容が書き込まれている)を取り込み
②その名簿に沿って、Web上で、対象者を見つけて、処理ボタンを押下して、所定の処理をする。
この②の対象者を見つけて(GetAttribute)、処理ボタンを押す(Click)というところです。

細かい手順は以下の通りです。
●assign(代入)
strKeyWord = “さくらんぼ”

●Get Attribute(属性を取得)

・Selector
“<html url=’http://www.iwebmethod.net/insider.net/dotnettips/081editdg/editdg.aspx’ /><webctrl id=’MyGrid’ tag=’TABLE’ /><webctrl tag=’TD’ aaname=’さくらんぼ’ />”

さくらんぼを変数にしている場合は、最後がこんな感じになりますね。

aaname='”+strKeyWord + “‘ />”

・Attribute(属性) “tableRow”
・Result(結果) str_tablerow

ここで行番号を取得して、Clickにつなげていきます。

●click

・Selector

“<html url=’http://www.iwebmethod.net/insider.net/dotnettips/081editdg/editdg.aspx’ /><webctrl tableCol=’4′ tableRow='” + str_tablerow +”‘ />”

 

※注意ポイント(スピードアップ)


実は、このGetAttributeするときに、遅くなるときがあり、困っていました。
(1回のフローの中で、AをGetAttributeするときと、BをGetAttributeするときで、1分以上差があるケースも)
最終的には、アドバイスをもらって、
WaitForReady(準備完了まで待機)の初期値である「INTERACTIVE」を「NONE」にしてみました。
そうしたら解消!GetAttributeも常に問題なく進み、安定稼働できるようになりました。

遅かった理由は、属性を取得した後も、ぐるぐると他の行を見て回っているのでは無いか?とのこと。
1000行以上あるデータだし、そういうこともあるのかもしれません。

「NONE」にする解決方法は常にOKという訳では無いですが、
今回は何度も動かしてみて問題が無いことが確認できました。
逆に他の事例で、上手くGetAttributeが動かないときは、COMPLETEにすることもあるようです。
(これはネット情報で見かけました)

※補足

属性名称はSelectorやUI Exploreでも、表示されているものです。
aaname とか  tableColとか…
Get Attributeの右下の、プルダウンでも選べます(行番号・列番号は出てこないんですが)

 

ちなみに 属性:aaname を 取得する場合は
Find Children等(子要素を探す)で、要素を全体で取得して
For each で1件ずつ処理する時に使うイメージです。
Find ChildrenからのGetAttributeについてはまた別の機会にお話します。

RPA体験談【目次(主にUiPathについて書いています)】

目次つくりました。