前回、書いた内容でSelector
について述べました。
これはUiPathが各要素を認識するための記述で、私の理解ではUiPathにとっての目としての機能を果たしていると考えています。
ここを理解する事で、UiPathをきちんと使いこなせるようになります。
早速確認をしていきましょう。
まずは、問題が発生するケースを見てみましょう。
例えば、下記の様なテーブルがあり、総合計の値(この場合は300)を取得したいとします。
前回の記事の「テキスト情報の取得」を参考にして、Recordingの機能によりデータを取得する事にしました。
生成される処理は下記の通りです。(最後に取得した値を確認するために、Message Box
を追加しています。)
実行すると、下記のメッセージボックスが表示されます。無事に、「300」という数字が取れました。
次に、同じテーブルでレコードが1件、追加されたとします。
この状態で、上記で作成した処理を流すと、下記のメッセージボックスが出力されます。
残念ながら、「250」という数字が抽出されてしまいました。本当は総合計が欲しいのにうまくいきません…
何故、上手くいかないのか
ここで、Selectorを確認する必要が出てきます。UiPath StudioよりSelectorを確認しましょう。まずは、テキストを取得しているGet Textをフォーカスして、Selectorを確認します。
下記の画面が表示されます。
見てみると、テーブルの3カラム目(tableCol='3')で、4行目のテキスト(tableRow='4')を取得する様に指定されていることが分かります。
なので上記の例では、このルールに則って4行目の3カラム目にある「250」という数字を取得してしまったのです。
この問題を解消するには?
ここでようやく、Selectorを修正していきたいと思います。これには、UiExplorer
というツールを使います。そして、これはUiPath Studioには含まれています。ウィンドウズアプリケーションやWebページの構造を表示し、ユーザーによる選択を可能とする機能です。(何だか分かり辛い説明ですね。)
とりあえず、内容を見ていきましょう。
まず、Launch UiExplorerをクリックします。
下記の画面が立ち上がるので、矢印をクリック。取得したい要素を選択しましょう。(このケースでは、総合計の数値を選択しています)
下記の様な画面が表示されます。ここでは、TableRow(つまり何行目か)が固定になっていることが問題でしたね。
なのでここでは、tableRowのチェックを外して、代わりにrowname(=総合計)をチェックしてあげましょう。
最後に、<webctrl ~
で始まる部分をコピーして、先ほどのアクティビティのSelectorに貼付けましょう。
この作業により、UiPathは「総合計」の行の3カラム目のテキストを取得する事を認識しました。行が増減しても、これで問題ありません。
時に、UiPathを使うときには人間が認識している情報を、上記のような手順により認識させる必要があります。Selectorは変数も使えますし、*
や?
といったワイルドカードも利用可能です。
きちんと使いこなすことで、自分が欲しい情報を確実に抽出できるようになりますので、色々と試してみると面白いと思います。