【初心者向け】UiPathによるRPA実装20 パスワード入力を伴うフォームへの入力自動化

前回は経費申請アプリケーションの紹介を主として、それに加えてFlowchart Activityを用いたアプリケーション起動の自動化方法を紹介しました。

今回の記事では、このアプリケーションのログインフォームへの入力自動化を実装します。特に、これまで説明していなかったパスワードの入力方法について、詳しく見ていきたいと思います。

<スポンサーリンク>

ログインフォームへの入力自動化

ユーザID/パスワードの通常入力

まずはログインフォームにある、ユーザIDとパスワード欄への入力処理を普通に自動化してみます。なお、ログインIDとパスワードは前回の記事にも記載した通り、いずれも”test”です。

フォームへの入力を自動化するために、レコーディング機能を使います。事前に、経費申請アプリケーションを起動しておきましょう。前回作成した自動化プログラムを実行することでもアプリケーションを開くことができます。

準備ができましたら、UiPathのメニューバーより、「Recording」→「Basic」を選択します。

すると、「Basic Recording」ウインドウが開きます。

今からログインフォーム上の2つの欄に対してやりたいことは、「クリックしてフォーカスする」、「テキストを入力する」の2点です。

まずはユーザID欄をクリックするために、「Click」ボタンを押しましょう。

続いて、経費申請アプリケーションのユーザID欄の中央をクリックします。

再度「Basic Recording」ウインドウが表示されます。クリックしてフォーカスしたユーザID欄にログインIDである”test”を入力するため、「Type」ボタンをクリックします。

そして、先ほどと同様、ユーザID欄の中央付近をクリックします。

入力する文字列を指定するためのウインドウが表示されますので、「Type the desired value」と書かれたすぐ下に、testと入力し、エンターキーを押します。

これでユーザID欄への入力自動化が完了しました。UiPath上は「Basic Recording」ウインドウが表示されていると思いますので、同様の作業をパスワード欄に対しても行ってください。

作業が終わりましたら「Basic Recording」ウインドウ上の「Save & Exit」ボタンを押し、これまでの操作を保存します。

ここまでの作業が終わると、Flowchartボックス内に新しいSequenceが作成されます。これをダブルクリックして、中身を見てみましょう。

「Click」→「Type into」→「Click」→「Type into」と4つのActivityから構成されており、これまでの作業がきちんと自動化されているようですね。

なお、下2つのボックスに表示されているスクリーンショットを見ると、ユーザID欄に対して操作を行っているようにも見えますが、実際にはパスワード欄に対して操作を行っています。そもそも、UiPath上のボックスに添付されているスクリーンショットは「Informative Screenshot」と呼び、開発者にイメージを持ってもらうための参考に過ぎません

このスクリーンショットは任意のものに差し替えることができ、例えば、以下の画面のように変更することができます。このようにしてもUiPathの動作には何の影響もありません。

さて、今追加されたSequenceですが、1点だけ問題があります。それは、パスワードが単純なテキストとして保存されているため、開発者であれば誰でもパスワードを知ることができてしまうという点です。場合によってはこのパスワードを開発者が悪用し、なりすまして経費申請を行ってしまうというリスクが考えられます。

これを防止するため、パスワードのような機密性の高い情報を、UiPath上では表示しないようにする方法があります。その方法でパスワード入力を実装してみましょう。

パスワード入力方法の修正

まずは作業を行う前に、経費申請アプリケーションのパスワード欄の” **** “を削除しておいて下さい。

次に「Basic Recording」ウインドウを開き、パスワード欄に対して入力する文字列の指定ウインドウが表示され、testと入力するところまで、先ほどと全く同様の操作を行います。

表示されるウインドウでは、下部の「Type password」という箇所にチェックを入れます。

すると、入力する文字列が「●●●●」に変換され、画面上では見ることができなくなります。ここでエンターキーを押して、入力内容を確定させましょう。

ここまでの操作が終わると、新しくRecording Sequenceボックスが登録されます。ダブルクリックして、中を見てみましょう。

先ほどと比較して、テキストを入力する部分が「Type password」というSequenceとして登録されていますね。中身の「Get password」というActivityは、入力した”test”という文字列をパスワードとして受け取るものです。その下の「Type into」はアプリケーション入力欄にテキストを入力する、おなじみのActivityですね。

ただ、このSequenceはこのままでは動きません。Get passwordで取得したパスワードテキストを入れるVariableを作成し、それをType intoに引き渡す処理を追加する必要があります。

まずはVariableを作成するところから実際にやってみましょう。

これまで新しいVariableを作成・使用する際は、ウインドウ下部のVariablesペインでVariableを新規作成した後、Variableを使うActivityにそれを登録するという手順で行っていました。

今回は、もう少し簡単な手順を紹介します。

まずは、Get passwordのボックスをクリックします。

右側のProperty内の「Result」欄に、Get passwordで取得したパスワード文字列を格納するVariableを登録する必要があります。

ここで、「Result」のテキストボックスをクリックした後、「Ctrlキー + k」と押してみましょう。「Set Name:」と表示されると思いますが、この後に任意の名前を入れると、これがVariableとして自動作成された上で、このActivityで使用するVariableとして登録されます。

ここでは「Set Name: 」に続けてpassと入力しましたが、その結果、「Result」欄にはpassというVariableが登録されています。

これが本当にVariableとして作成されているか、Variablesペインを開いて確認してみましょう。

確かに、String型のVariableとして「pass」が登録されていますね。

この「Ctrl + k」を使ってVariableを作成する方法は他のActivityでも使えますので、ぜひ試してみて下さい。

さて、話をもとに戻します。

ここまでの処理で、入力したパスワード文字列を受け取るVariable、「pass」が登録されましたが、今度はこれをType intoに渡してやる必要があります。

Type intoボックスの中に、passと入力しましょう。

これで、ログインフォーム上のパスワード欄へのパスワード入力が実装されました。また、こうすることにより、UiPath上、パスワードはどこにも表示されないことになり、開発者からパスワードを見ることはできなくなりました。

古いパスワード入力Activityの削除と新パスワード入力Sequenceの連結

さて、現在、UiPathにはパスワード入力Sequenceの中身が表示されていると思いますが、一旦アプリケーションの起動も含めたここまで処理の全体像を見てみましょう。

その前に、UiPath上で今どこにいるのかを説明したいと思います。

まず、プロジェクトの大本は、「Main」という名のワークフローファイルです。そしてその中に、前回追加した「Flowchart」が含まれています。さらにこの中には、先ほど作成したパスワード入力のSequenceが「Recording Sequence」という名称で登録されており、今現在はこのSequenceの中にいます。

ということで、全体像を見るためには、「Main」ワークフローを表示すればよいことになります。

UiPathの中央の領域上部に、今説明した階層構造が記載されておりますので、「Main」をクリックして下さい。すると大本のワークフローに戻ることができます。

さて、大本のMainワークフローには、3つのボックスが存在しています。ここで、2つ目の「Recording Sequence」内には、ユーザIDの入力とパスワード入力操作(修正前)が含まれていますね。パスワード入力については新しい操作として追加しているので、2つ目のボックスからは削除しましょう。

2つ目のボックスを開き、さらにその中の下2つのボックスを選択してDeleteキーを押します。Ctrlキーで選択すると、2つ同時選択が可能です。

さらにメインワークフローに戻り、3つのボックスを線でつなぎましょう。

完成形は以下の図のようになります。

テスト実行

さて、ここまで組み立てた処理を実行してみましょう。

アプリケーションが起動し、ユーザIDとパスワードが自動入力されれば自動化は完了です。

終わりに

今回は新しい概念として、パスワードなど機密性の高い情報入力時に、不必要に入力データを開発者等に見られないようにするための入力処理自動化方法を説明しました。

次回はこの続きからですが、具体的にはログインボタンを押して経費申請画面に遷移するところの自動化と、これまで作成したワークフローの整理を行いたいと思います。