KNOWLEDGE & INSIGHTS

2021.07.08

【UiPath】開発未経験者がUiPathを学習する際、最初に躓くセレクターを解説

はじめに

  UiPathRPAツールの中で最も開発が簡単なツールの一つであると言われています。しかし、全くの開発未経験者がUiPathの学習を行う場合、想像以上に難しいと感じ、躓いてしまうこともよく聞きます。なぜなら、UiPathが初心者向けツールだと言っても、ある程度の前提知識を持っていることが想定されているからです。

 初心者が躓く要素としては、セレクターが挙げられます。詳しくは後述しますが、セレクターとはUI 要素を指定するための住所のようなもので、UiPathのレコーディングを行う際など様々な場面で活用します。レコーディングとは、マウスやキーボードの操作を記録して、自動的に自動化処理を作成できる機能です。レコーディング開始後、ロボットに操作させたい処理を自分が実行するだけで処理が完成するので、細かなアクティビティを知らない初心者向けの機能とも言えます。しかし、セレクターがうまく設定できていないために、レコーディングを進める中で、エラーが発生することがあります。初心者にとって、セレクターそのものがどのようなものなのか完全に理解することは容易ではありません。そのため、セレクターは初心者がUiPathを学習する中で最初に当たる壁の一つと言えるでしょう。  

 そこで、この記事では、UiPathのセレクターにおいて、初心者が陥りやすいミスやその解決方法について解説していきます。

 

セレクターとは

  ウェブページやアプリケーションのユーザーインターフェイス(利用者とサービスの接点)にはボタン・メニュー・サブメニューなどのUI要素の位置や表示順などが定義されています。セレクターは、これらの UI 要素を指定するための住所のようなものです。UiPath はこのセレクターを利用して、ユーザーインターフェイス内の操作を自動化しています。

 例えば、メモ帳のテキスト入力画面のセレクター(editable text)は、添付画像のようにデスクトップの下の階層にあるEditの階層の中にあります。メモ帳に文字を入力する操作を自動化する場合、このeditable textのセレクターを指定します。

 

 

セレクターがうまく機能していない場合の対策

  セレクターの重要性はもういうまでもないが、上手く設定したいと正常に実行できなかったりすることは多々あります。ここはセレクター設定が原因で処理が正常に作動しない事例を4つ、並びにその解決方法と合わせて紹介します。

事例① メモ帳への文字入力する処理ができない場合

 メモ帳への文字を入力する処理を行うとき、正常に処理を行えない場合があります。その原因としては、セレクターが特定の名前(処理を実行したいメモ帳の名前とは別の名前)のメモ帳を指定しており、そのメモ帳以外には処理を実行することができなくなっていることが考えられます。

 例えば、下記の添付したセレクターの場合、「title」がメモ帳の名前である「セレクター学習」となっています。この場合、メモ帳「セレクター学習」を閉じて、新たに別のメモ帳を開いて処理を実行しようすると、セレクターが一致しないため、エラーが発生して処理ができなくなります。

解決方法としては、セレクターエディターの「属性を編集」内の「title」のチェックを外すことで処理を実行できるようになります。

 

事例② 名前が変化するファイルに処理を行う場合

 事例①では、セレクターを編集して正常な処理を行う方法を学びましたが、実務ではユーザーインターフェイスが常に変化する場合があります。例えば、毎日報告書を作成し、そのタイトルを「200101_報告書」「200102_報告書」「200103_報告書」と日付などによって変化していく場合です。「200101_報告書」に作成した処理は「報告書_200102」には適用されませんし、事例①のようにタイトルを消すやり方も好ましくありません。

このような場合、解決方法としてはワイルドカードを利用することが考えられます。ワイルドカードとは任意の文字列の代わりに使用する特殊文字のことで、「*(アスタリスク)」と「?(クエスチョンマーク)」の二種類があります。「*」は文字数に制限なく置き換えることができるワイルドカードで、「?」は一文字のみ置き換えることができるワイルドカードです。

 冒頭で話したタイトルが日付によって変わるファイルを処理する場合、「title = ‘200101_報告書 メモ帳‘」となっているセレクターを「title = ‘*報告書 メモ帳’」と編集することによって、日付が変更されても問題なく処理を実行させることができるようになります。

 

事例③ ユーザーインターフェイスが変化するサイトに処理を行う場合

 アプリ上のユーザーインターフェイスが大きく変化する場合、今までの事例で学んだやり方では処理が上手くいかない場合があります。例えば、UiPath が作成したRPAチャレンジ」というデモサイトでは、登録ボタンや入力ボックスの位置、名称が変化します。このデモサイトの名前の入力欄のセレクターを確認してみると、添付画像のようにidが不安定なものになっているため、今までと同じ処理を実行しても正常に機能させることができません。

 

 このような場合、解決方法としてはアンカーベースを利用することが考えられます。アンカーベースとは、近くにあるアイコンやラベルなどの固定的な要素を目印にすることでクリック先や文字の入力先を指定できるアクティビティです。「RPAチャレンジ」の名前の欄に文字を入力する処理を開発する場合、まず、シーケンスにアンカーベースを追加して、アンカーに「要素を探す」アクティビティを追加します。そして、「RPAチャレンジ」の入力欄ではなく、ラベル(名前)を選択します。そうすると、ラベルは固定的な要素であるため、添付画像のようにセレクターで「名前」が指定され、安定したセレクターを作成することができます。

 

 このように、アンカーベースを利用することで、「RPAチャレンジ」のようなセレクターが不安定な場合でも正常に処理を実行することができます。

 事例④ バックグラウンドで処理を行う場合

 アンカーベースは常にアンカーの画面上の位置を使用するため、事例③の処理はバックグラウンドでは要素を正確に指定できない可能性があります。

 この場合、解決方法としては相対セレクターの一つであるnavタグを使用することが考えられます。navタグとは、ナビゲーションを表す要素で、ページ内の指定部分や他ページへの誘導を意味します。例えば、UI Explorer で「RPAチャレンジ」の「名前」の入力欄の要素を選択します。続いて、「名前」のラベルのアンカーを選択します。そうすると、添付画像のように、<nav up =’1’>とnavタグが追加されます。これは、相対セレクターで1つ上の親要素を指定していることを表しています。また、毎回値が変化してしまうid属性をセレクターから外し、作成したセレクターを先程の事例③のセレクターに上書きします。これで、バックグラウンドでも安定して処理を実行することができます。

 

 

おわりに

 UiPathにおいて初心者が最も躓きやすい要素の一つであるセレクターについて解説しました。UiPath RPAツールの中でも開発が容易といわれていますが、それでもエンジニア経験のない初心者にとって開発は簡単なものではありません。その中でも、セレクターという概念には苦戦する人は多いでしょう。しかし、専門知識をもったエンジニアが不足する日本において、RPAツールを扱える人材は大きな市場価値をもちます。そのため、セレクターのようにプログラミングにおける基礎的な概念を11つ理解していくことが重要だと考えられます。もちろん、本文で上げた事例4つの回答は唯一の正解ではなく、実際こちらよりよい解決策もあるかもしれないが、初心者の方の参考になれれば幸いです。

 

【参考】

副嶋 雅樹

アーツアンドクラフツ Consulting & Solution事業部/アナリスト
2020年神奈川大学経営部卒業