スリープ時間を動的に変更する
以下の記事にて、簡単なブラウザ操作を行うアクションの作り方を記載し、
記事の中で、URLを開いてからキーボード入力を行う操作に行く前にWait処理を入れるべしと解説しました。
ブラウザからURLを開く処理を待たずに後続の処理が始まると、エラーとなってしまう場合があります。
環境によっては不要ですが、安定化のため明示的に待つ動作を入れます。
実装としては、左側にある「Wait」を挟みます。今回はTimeout(timespan/secs)という箇所に「5」と入力しました。5秒スリープします。
そうはいっても、1秒で開ききって待ちが発生したり、逆に5秒では足りないケースもあります。
そのようなケースで利用できるのがWaitのActionです。
操作の前段階の処理が完了し終われば、指定した時間が経っていなくてもWaitを終了することができます。
Wait処理(指定時間待つ)
以下のアクションでURLをブラウザで開き
以下のアクションで文字列を入力するとします
ここで、特にスリープ処理を挟まずに続けて実行しますと以下エラーメッセージで止まる場合があります。
Internal : Failed to perform step 1 in Write Stage 'W_Write' on page 'Write' - Unable to match any windows with the query terms
よって以下のようにWriteを行う前にWait処理をはさみます。
ここから、準備ができれば後続作業に行くようにします。
Waitに動的な条件を追加する
Waitの中を見ると以下のようにアクションを入れる欄があります。
Element | Params | Condition | Type | Comparison | Value |
---|---|---|---|---|---|
<Unknown Element> | Unknown |
Write処理を行うエレメントを選択してこの欄にドラック&ドロップすると、
Condition欄から以下の条件を選択できます。
- Check AA Attribute
- Check Exist
- Check Window Attribute
入力欄する欄が存在するか否かで判断するべくCheck Existを選択します。
Check Existを選択すれば、特にInput情報を与えずとも判定できます。
Element | Params | Condition | Type | Comparison | Value |
---|---|---|---|---|---|
Write | Check Exists | Flag | =(Equal) | True |
選択後に画面に戻ると、Wait処理にAnchorのポイントが追加されているので後続の処理にリンクさせます。
この状態で動作させると、Waitに設定した時間を待たずにWrite部分の処理が行われます。
終わりに
ブラウザ操作にて待ち時間を動的に変化させるために行う処理です。
Wait操作でスリープ処理を行う際には、この分岐が使えないか意識すると良いと思います。
以上、BluePrismのブラウザ操作に関する補足でした。