【Uipath】セレクターを変数化する(動的セレクター) 【StudyRPA】

こんにちは!

今回はセレクターを変数化して、動的に対象を選択する方法をご説明致します。

 

セレクターを変数化する方法は大きく2つあり、どちらも同じ動きをします。

システムによっては動かない場合もありますので、その場合は動く方を利用して下さい。

  • UiPathの機能を利用する方法

    UiPathの機能を利用し、セレクターエディター画面からセレクターを変数にする方法を記載します。

    まずは、対象となるセレクター情報を取得します。
    今回は赤線が引かれた「editable text」部分を変数化します。

    f:id:StudyRPA:20210723170855p:plain


    まずは、変数を作成します。わかりやすいように「動的セレクター」という変数を作成しました。変数に置き換えられているかを検証するため、既定値に置き換え前の"editable text"を入力しておきます。

    f:id:StudyRPA:20210723171354p:plain

    置き換え対象を選択後、右クリックを押し、「変数を選択」をクリックします。(対象を選択後、Ctrl + スペースでも可能)

    f:id:StudyRPA:20210723170251p:plain

    下記ウィンドウが表示されるので、置換える変数をダブルクリックします。すると、対象の値が変数に置き換わります。

    f:id:StudyRPA:20210723170255p:plain

    f:id:StudyRPA:20210723170259p:plain

    今回は、あらかじめ変数の既定値に元の値を入れていたため、
    「検証」ボタンを押下することで、セレクターが正常に認識できていることが、
    確認できます。

    f:id:StudyRPA:20210723170302p:plain


    ※注意点
    この方法は、簡単に変数に置き換えることができますが、対象のシステムによって動作しない場合があります。
    その場合は、次に記載する「UiPathの機能を利用しない方法」をお試しください。

  • UiPathの機能を利用しない方法

次にUiPathの機能を利用しない方法について、ご説明致します。
先ほどと同様に、対象となるアクティビティのセレクター情報を取得し、変数を作成します。

f:id:StudyRPA:20210723170855p:plain

f:id:StudyRPA:20210723171354p:plain


次にセレクターを取得したアクティビティのプロパティを開きます。
ターゲット>セレクターのテキストボックスをクリックし、
Ctrl + Aで全選択後にコピーします。

f:id:StudyRPA:20210723181851p:plain


メモ帳を開きコピーしたセレクター情報を貼り付けます。

※注意①
下記画像の様にセレクターが1行ではなく改行されている場合は、バックスペースなどで改行を取り除き、1行にしてください。

※注意②

セレクター情報全体が「"(ダブルクォーテーション)」で囲われていない場合は、セレクターの両端に「”(ダブルクォーテーション)」を足してください。

f:id:StudyRPA:20210723181855p:plain


対象となる値を以下のように修正します。
修正前)role='editable text'
修正後)role='"&  動的セレクター &"'

※Point!
「'」で囲われた値を「"& 変数 &"」に変換するだけです!

f:id:StudyRPA:20210723181859p:plain


最後に、メモ帳で修正したセレクターを全選択し、コピーして元のテキストボックスに貼り付ければ完了です。

f:id:StudyRPA:20210723181903p:plain


貼り付け後、テキストボックスの右にある「...」ボタンをクリックし、
下記の様に「式エディター」となっていれば成功です。

f:id:StudyRPA:20210723181906p:plain


少し複雑に思うかもしれませんが慣れれば手間もなく、こちらのやり方の方が動作が安定します。

※Point!
この方法でエラーになる場合は、以下が考えられます。

  1. セレクターの両端が「"」で囲われていない。

  2. 変数がIntやObject型の場合、「.ToString」をつける必要がある。
    ⇨for each rowアクティビティのrow変数を利用する場合にも、
     row(0).ToStringとする必要があります。