UiPathを使ってセレクターに変数を代入したい時があると思います。例えばUIExploerを使ってテーブルやリストなどのセレクターを見ていると数字が含まれていることがよくあります。
そんな時にセレクターを変数を代入することでForEachなどと組み合わせることにより、自動化できる幅がより広がります。
##チェックボックスのクリックを例に変数化する
例えば下記のようなチェックボックスを全てチェクしたいとします。
![スクリーンショット 2019-01-22 22.57.39.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F347151%2F42fc4132-d8a4-fdbc-d669-705329e2854f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=4cff4836ba40531fa0c68f310be645a7)
チェックするためにはそれぞれ一つずつクリックアクティビティでセレクターを指定して上げなければいけません。
一番上のチェックボックスのセレクター見てみると下記のようになっています。
次に二つ目のチェックボックスのセレクター見てみると下記のようになっています。
ご覧の通り一つめと二つ目のチェックボックスを区別する方法はidxの数字しかあません。
チェクボックスの数だけクリックアクティビティを用意するのは面倒なため、idxの中身を変数化し、繰り返しで記述を短縮します。
##記述方法
まず下記のように変数の定義を行って下さい。ここでは初期値に1を代入します。
![スクリーンショット 2019-01-23 20.31.07.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F347151%2Fa7a4e597-5d49-e5f9-912a-e8bcb0f2db63.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=611ee13a2a38da51b16c3e2965e148a4)
次にクリックアクティビティのセレクターに変数を代入します。
変数を代入する時は変数化する部分を””で囲み、変数の両側に+を加えて下さい。また、変数の型がInt32型の場合はToStringメソッドで文字列に変換して下さい。
代入前
<webctrl idx='1' tag='INPUT' type='checkbox'/>
代入後
<webctrl idx='" + Counter.ToString + "' tag='INPUT' type='checkbox'/>
##繰り返す
最後に繰り返しアクティビティを使うことで任意の数だけチェックができることができるようにします。
画像では上から5個のチェックボックスをクリックしますが、例えば5の部分をテキストを取得アクティビティから取得することができれば、全てのチェックボックスに繰り返しチェックを入れることができます。
![スクリーンショット 2019-01-23 21.00.05.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F347151%2F6cf8a965-b569-822d-11b2-ba9733226c2c.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=952df00f527baa8ca2b9a39769cd8e42)
セレクターの代入方法は以上になります。ここで取り上げたのはあくまで例になりますが、システムを使った作業の自動化を行う際にはセレクターに変数を代入すると自動化できる作業内容が増えると思いますので是非検討して見て下さい。