Anywhere初心者向け2022.05.18みなさん、こんにちは。今回は最後の仕上げとして、ランダムに出現する子画面への対応についてご紹介します。Hackathon(https://www.rpahackathon.co.uk/)Level1で表示されるランダム子画面には以下のような種類が存在します。上記子画面を分類すると、以下の3種類に分類できます。子画面を無視して閉じる2.ABCのボタンの中から、指示文と合致しているボタンを押下3.OKまたはキャンセルのボタンの中から、指示文と合致しているボタンを押下では、それぞれの種類の子画面に対処するために、実装を行っていきましょう。前回までのBotと同じBotに処理を追加していきます。XXX」という指示文になっていることがわかります。「XXX」の部分を抽出していきたいと思います。子画面が出ている時に「レコーダー」パッケージ「キャプチャ」アクションで、指示文を取得していきます。InnerText」に指示文の内容が入っていることがわかります。InnerText」内の指示文を保存します。次に、取得した指示文から「XXX」の部分を抽出していく作業を行います。使用するアクションは、「文字列」パッケージの「テキストを抽出」アクションです。」より後ろの値を抽出していきます。「元の文字列」に先ほど取得した指示文の変数を指定し、「文字を取得」で「以前」を選択します。」を入力し、ここで指定した文字より後ろの文字列を抽出します。「出力を変数に代入」で先ほど取得した指示文の変数を指定し、この変数の中身を上書き(再代入)します。XXX」の「XXX」の部分のみを抽出することができました。次に、ボタン操作です。「指示文に合致するボタンがない場合、ボタンを押さずに子画面を閉じる」という動きが必要となってくるため、まずは指示文に合致するボタンがあるかどうか?を判定しなければなりません。判定を行うアクションを挿入していきます。判定を行うアクションパッケージといえば、「If」パッケージですよね。「If」パッケージ「If」アクションを挿入していきましょう。「オブジェクトをキャプチャ」から子画面上にあるボタンをキャプチャします。※複数ボタンがある子画面の場合でも、まずは一つのボタンをキャプチャしてください。InnerText」にボタンのラベル名が入っていることがわかります。ここをチェックし、オブジェクトの検索時に検索対象とするプロパティに指定します。一方で、「DOMXPath」や「Path」はボタンの位置も検索対象としてしまうので、チェックを外します。InnerText」にチェックを入れ、「DOMXPath」と「Path」のチェックを外したあとの検索対象の「オブジェクトのプロパティ」は以下となります。ここからが大事なポイントになります。InnerText」の値を、「指示文に書いてあるXXX」に変更します。InnerText」に対象の変数を指定してあげます。これで、「子画面上に指示文内XXXに対応するボタンが存在する」場合の判定を作成することができました。このIfアクションの中に、「子画面上に指示文XXXに対応するボタンが存在する」場合の処理を記載します。一方で、「子画面上に指示文XXXに対応するボタンが存在しない」場合の判定も作成しなければいけません。「If」パッケージの「Else」アクションを挿入します。これで、「Else」アクションの中には、「子画面上に指示文XXXに対応するボタンが存在しない」場合に実行される処理を記載できます。次は、指示文に記載の「XXX」に合致するボタンを押下する処理を、先ほど記載したIfアクションの中に入れていきます。「2-2.ボタンの判定」で「If」アクションの「レコーダー」条件で設定した内容と同じようにキャプチャし設定していきます。Hackathonのページを指定し、ボタンをキャプチャします。※複数ボタンがある子画面の場合でも、まずは一つのボタンをキャプチャしてください。InnerText」を検索対象にするためにチェックします。InnerText」の値を、指示文から抽出した変数に変更します。「オブジェクトに実行するアクション」で、「左クリック」または「クリック」を選択します。これで、指示文に記載の「XXX」に合致するボタンを押下する処理を作成することができました。今度は指示文に記載の「XXX」に合致するボタンが存在しない場合の処理を作成していきます。先ほど作成したElseアクションの中に、「レコーダー」パッケージ「キャプチャ」アクションを挿入します。Hackathonのページを指定し、子画面上部の「閉じる」ボタンをキャプチャします。「オブジェクトに実行するアクション」で「左クリック」または「クリック」を選択し、アクションの設定は完了です。これで、指示文に記載の「XXX」に合致するボタンが存在しない場合の処理も完了しました。今回作った処理を、前回までに作成したBot内の、「ループ」処理の最初に挿入することで、ページ遷移後に表示される子画面の対応を行うことができます。「ランダムで出現する子画面が出ていないとき」は、処理を行わないようにしないといけません。子画面が出ているかどうかは、共通のタイトルが存在するかで判定を行っていきましょう。その判定を行うために、「ループ」処理内の最初に、「If」アクションを挿入します。GROUP」をキャプチャします。作成したIfアクションの中に今回作成した処理を全て移動させます。これで、ランダムに表示される子画面がポップアップされた場合の対応は完了です!3.まとめいかがだったでしょうか。今回でこの「初めてのBot作成」シリーズは終了となります。オブジェクトのキャプチャ、ループやIf、Excelの操作など、基本的な操作を触って実装することができましたでしょうか。更なる工夫を自分で加えてみるのも次のステップに繋がります。比べてみたみなさま、こんにちは。使い方みなさま、こんにちは。使い方みなさま、こんにちは。みなさま、ごきげんよう。~トレーニング編【検証】~こんにちは、山崎です。C&Sが運営しています。