3.A.2.3. Windowsオートメーション(Skypeアプリ)/セレクタの使用方法のページです

さて、このワークフローの例では、これまでの旅の最大の山場がやってきました。内蔵のレコーダーは、このセクションで紹介したタスクを効果的に達成するために、ユーザーが通常行うタスクを記録するために使用されます。

タスクの記録

ここでは、Skypeアプリケーション内でコンタクトを検索し、そのコンタクトを選択(またはクリック)して、添付ファイルを含むメッセージを送信するという、通常行われる作業を記録します。

まず、Skypeのアプリケーションを起動します。

これで、Skypeアプリケーションを開いたまま、OpenRPAのリボン内のボタンをクリックしてOpenRPA内のRecorderを起動し、手動で行ったようにタスクを実行することができるようになります。

images/openrpa_workflow_examples_windows_automation_skype_app_click_recorder.png

レコーダーを起動した状態で、「人、 グループ メッセージ」のプレースホルダーがある「検索」タブをクリックする必要があります。

images/openrpa_workflow_examples_windows_automation_skype_app_click_search_tab.png

検索」タブ内に、プレースホルダー「Search Skype」を含む入力フィールドが表示されます。その入力フィールドをクリックすると、InsertText入力フィールドが表示されます。ユーザは、このセクションで適切なセレクタを割り当てるためのダミーとして使用される既存のコンタクトを入力する必要があります。Skypeのオートコンプリート機能がユーザーを見つけるのを待ってから、ユーザーは目的のコンタクトをクリックする必要があります。

images/openrpa_workflow_examples_windows_automation_skype_app_search_tab_input_field.png
images/openrpa_workflow_examples_windows_automation_skype_app_search_tab_input_field_filled.png

連絡先をクリックすると、その連絡先の「メッセージ」タブが表示されます。

ここでユーザーは、右下のセクションにある「 ファイルの追加」ボタンをクリックする必要があります。

images/openrpa_workflow_examples_windows_automation_skype_app_click_add_file_button.png

ここでファイルダイアログが表示され、ユーザーは希望のファイルを選択できます。また、InsertTextというタイトルのOpenRPAからの入力ダイアログが表示され、ここで再びダミーテキストを挿入できます。セレクタはこのダイアログを操作して、次のセクションで見るように、送信されるファイルを選択します。そして、「開く」ボタンをクリックします。

images/openrpa_workflow_examples_windows_automation_skype_app_select_file.png

ここで「Type a message」プレースホルダーを含む入力フィールドをクリックすると、「InsertText」というタイトルの別の入力ダイアログが表示されます。ここで再び、任意のダミーテキストを入力することができます。

images/openrpa_workflow_examples_windows_automation_click_type_a_message.png

その後、青色の送信ボタンをクリックしてください。

images/openrpa_workflow_examples_windows_automation_click_send_button.png

最後に、検索タブ内の×ボタンをクリックして検索ダイアログを閉じ、ESCボタンを押してレコーダーを終了します。

images/openrpa_workflow_examples_windows_automation_skype_app_close_search_tab.png

セレクタを設定する

これで、OpenRPAのデザイナー内に登場した多くのGetElementアクティビティのSelectorが設定されました。

まず、Skypeアプリケーションペイン内で最初にクリックされる要素に対して、最初のセレクタを設定します。これは、People, groups & messagesのプレースホルダーを持つものです。このケースでは、ワークフローに関心を持つ可能性のあるサードパーティによる表示プロセスを容易にするために、その表示名を Search for people, groups & messages から Search Contact GetElementに変更しました。

特定のフィールド用に生成されたGetElementアクティビティ内の [セレクタを開く] ボタンをクリックします。

images/openrpa_workflow_examples_windows_automation_skype_app_people_groups_messages_selector.png

この画像では、ユーザーは入力されたダミーユーザー名に対応する「Type Text」アクティビティに気づきます。次のステップで別のアクティビティに置き換えられるので、ユーザーはワークスペースからそのアクティビティを削除することができます。

新しいウィンドウでハイライトボタンをクリックしても、Skypeアプリケーションのウィンドウを開いたままでは、画面内のどの要素もハイライトされないことにお気づきでしょう。そこで、指定された要素を手動で選択する必要があります。

そのためには、まず、Pane Skype->Document Skype XXXXXXXXXX->Button Search for people, groups & messages という要素をダブルクリックし、この最後の要素を右クリックして、表示されるSelect Elementボタンをクリックします。下図は、この要素を強調表示したものです。

images/openrpa_workflow_examples_windows_automation_skype_app_people_groups_messages_selector_element_highlighted.png

ここで、最初のセレクタのファイル名属性を変更します。"%ProgramFiles%﹑Microsoft.SkypeApp_15.61.100.0_x86__XXXXX﹑Skype.exe" で、skypeのバージョンとその次のハッシュ(ここでは{XXXXX} として指定)をトリミングします。これを行うには、“%ProgramFiles%⇄WindowsApps⇄Microsoft.SkypeApp_*”“¹に変更するだけです。

これで、ユーザーは4番目のセレクタの選択も解除しなければなりません。ここまでの変更はすべて下の画像に示されています。

images/openrpa_workflow_examples_windows_automation_skype_app_people_groups_messages_selector_finished.png

その後、画面左下の「Ok」ボタンをクリックするだけです。アクティビティ内のHighlightボタンをクリックして、適切なセレクタが設定されているか、再度確認することをお勧めします。

ここでユーザーは、「検索」タブ入力のキャプチャを担当するGetElementアクティビティ内で、上記と同じ手順を実行する必要があります。Pane Skype->Document Skype XXXXXXXXX->Edit Search Skype.で要素を選択します。ここで重要なのは、セレクタを開く前にSkypeアプリケーション内にSearchタブが表示されていなければならないということです。

images/openrpa_workflow_examples_windows_automation_skype_app_search_tab_selector_finished.png

また、ユーザーは、現在のGetElementアクティビティ内のAssignアクティビティの右側の値を、希望する連絡先のユーザー名を保持する変数に変更する必要があります。この例では、フォームのセクションで定義したとおり、usernameSkypeがその変数になります。

images/openrpa_workflow_examples_windows_automation_skype_app_search_tab_assign_properties_tab.png

ここでユーザーは、ワークフローに「Delay」アクティビティを追加しま す。Delayの Durationプロパティを00:00:05に設定し、この遅延が5秒間継続することを意味します。これは、Skypeアプリケーションに組み込まれたオートコンプリート機能のため、明示的に必要です。これは、ロボットが次のステップに進む前にオートコンプリート機能が完了するのを待たなければならないという、ハードコードされた制約です。

images/openrpa_workflow_examples_windows_automation_skype_app_delay.png

次に、ユーザーは、ContactボタンをキャプチャするGetElementアクティビティ内で、上記の手順を繰り返す必要があります。 Pane Skype->Document Skype XXXXXXX->Group PEOPLE->Button {Contact Name}, {Status}, {Chatted Last}, {Skype Name}– すなわち、この例ではPaulo Veras,Away,Chatted 23 minutes ago,Skype Nameを選択します。 ここで重要なのは、セレクタを開く前にSkypeアプリケーション内にContactボタンが表示されていなければならないということです。これによりOpenRPAはContactボタンをウィンドウ内の要素として認識することができます。以下は、セレクタが正しく設定され、ボタンが強調表示された画像です。

images/openrpa_workflow_examples_windows_automation_desired_contact_selector_finished.png
images/openrpa_workflow_examples_windows_automation_desired_contact_selector_highlighted.png

ContactボタンをキャプチャするGetElementアクティビティに含まれるClick Elementアクティビティ内のPost Waitプロパティを使用して、ポストウェイトを追加してください。 この値は、00:00:02に設定する必要があります。ポストウェイトを使用すると、Skypeウィンドウの左ペインに表示される目的のコンタクトボタンをクリックした後、アプリケーション自体がメッセージタブをロードするのを待ちます。ポストウェイトを追加したため、Delayアクティビティは必要ありません。

ユーザーは、残りのアクティビティに対して適切なセレクタを選択するために指定された手順を繰り返し、適切に構成されたときに画面内の要素がハイライトされることを保証する必要があります。要素を正しく選択するために、[Add file]ボタンでウィンドウを開く必要があるかもしれないことを覚えておいてください。

次に、Skypeアプリで送信するファイルのfilepathに適切な値を設定します。ファイルパスが設定される入力フィールドに対応する各アサインアクティビティ内で、適切な値を割り当てます。引数をまだ作成していない場合は、今すぐ作成します。引数の 方向は Inに設定する必要があることを忘れないでください。以下は、この引数を適切に設定する方法です。

images/openrpa_workflow_examples_windows_automation_set_filepath_inside_getelement.png

最後に、GetElementアクティビティに含まれるAssignアクティビティで、Pane Skype->Document Skype XXXXXXX->Edit a message 対応するセレクタ内の要素について、設定が正しいかどうかを確認し、 item.valueを item.SendKeys に変更します。

ユーザーがこれを控えた場合、OpenRPAはSkypeの編集フィールドの値を変数templateMessageの内容に直接設定しようとします。問題は、そのことです。Skypeはそれを好まないのです!Skypeアプリは、ユーザーがエディットフィールドの値を直接変更する代わりに、一文字ずつ入力することを想定しています。そうしないと、実際のテキストメッセージの上にプレースホルダー「Type a message ” 」が表示されて、UIがめちゃくちゃになります。

一文字ずつ入力するユーザーを模倣するには、item.SendKeysメソッドを使用するのが正しい方法です。

Detectorが適切に設定されていれば、ユーザーは以前に定義されたディレクトリ内に.PDFファイルを挿入して、ワークフロー例をテストすることができます。そうでなければ、以下の注意事項に従うことができます。

備考

このワークフロー例の最初のステップで見たように、ユーザーがFileWatcherDetectorPluginから取得するfilepath引数を設定していない場合、ユーザーはAssignアクティビティを使用して手動でその値を設定する必要があります。

備考

アクティビティのパラメータ内の名前(DisplayName)を変更するには、アクティビティの名前を2回クリックし、希望の名前を入力してリターンキーを押すか、プロパティボックス内のパラメータDisplayNameを設定することができます。

備考

ワイルドカード(https://ryanstutorials.net/linuxtutorial/wildcards.php) は、ファイルやディレクトリのセットを定義するパターンを作成するための構成要素のセットです。覚えているように、コマンドラインでファイルやディレクトリを参照するときは常に、実際にはパスを参照しています。パスを参照するときは常に、パスの中でワイルドカードを使用して、ファイルやディレクトリのセットに変換することもできます。