セレクターを意識していますか?
UiPathを使っていて、「セレクター」について意識しながらワークフローを作っている人ってあんまりいないんじゃないでしょうか。
「セレクターを意識していない」と言える代表例を以下に挙げます。
- 自動生成されたセレクターをそのまま使用している
- UiExplorerを使わない
では、「セレクターを意識している」とはどのような状態でしょうか。
まず、UiPathが自動生成したセレクターを見てみましょう。下記のような形式がほとんどだと思います。
<html app='iexplore.exe' title='example' />
<webctrl name='button' tag='INPUT' />
このセレクターのXML文字列について、どの程度理解しているでしょうか。
このXML文字列の意味をある程度理解し、セレクターを自在に扱い、ワークフローの安定性向上や効率化を目指して初めて「セレクターを意識している」と言えます。
セレクターを意識しない場合のデメリットは以下のようなものが考えられます。
- ワークフローが落ちやすい
- 不必要なロジックが増える
- アクティビティが期待通りに動作せず、ワークフロー作成を断念してしまう
それでは、導入はこれぐらいにして本題に入っていきましょう。
今回はPart0ということでセレクターの基礎を理解していきます。
セレクターってなに?
UiPathでワークフローを作るとき、必ずアクティビティを使用します。アクティビティには一部を除きセレクターが存在します。
では、セレクターとはアクティビティのどんな役割を担っているのでしょう。
それは、アクティビティがアクションを起こす画面の位置(座標)を指し示していると言えます。
しかし、x軸y軸のような2次元座標ではないことに注意してください。
GUIアプリケーションもプログラムであるため、全ての画面要素はプログラミングされています。
つまり、そのプログラムを解析すれば、画面要素そのものを特定することが可能です。
そして、その特定した要素の位置情報を記録したのがセレクターです。
単純な2次元座標ではないため、UiPathは操作するウィンドウの位置が変わってもアクティビティが正しく動作するのです。
終わりに
最後までご覧いただき、ありがとうございました。
セレクターについて、仕様が公表されていないため、いまだに分からないところが多くあります。
しかし、少しずつ検証して記事にまとめていけたらと思っています。
次回はセレクターの「手動生成」について話したいと思います。
手動生成について投稿しました。