フォーカスにセットされていることを確認したい

画面操作処理において、Uipathと画面のアンマッチが発生するため(画面動作が遅いときなど)安定化を模索しています。

【現状】
①画面_項目入力
②画面_「登録」ボタンをクリック
③画面_処理結果のステータスメッセージを取得

↑現在、項目入力が遅かったときに、「登録」ボタンのクリックができていない場合があります
(Uipath側はやったこととしてログに出力されています)

【実現したい内容】
①画面_項目入力
②画面_「登録」ボタンへフォーカスセット
③フォーカスセットされていることを確認
④画面_「登録」ボタンをクリック

②はSet Focus で対応
③のフォーカスセットされていることを確認 こちらについての実現方法が
わからずにおります。

アクティビティを駆使することで実現できるのか
他パッケージを追加しての実現
言語利用で可能・・・など

ご教示いただけますと大変たすかります。

こんにちは

このあたりが良くわかりませんが、登録ボタンがクリック可能になる前にクリックしてしまっている
ということでしょうか?
そうであれば、登録ボタンの何らかの属性に変化があると思うので、それを属性を取得アクティビティでチェックし、クリック可能となっていからクリックすれば良いかと思います。

あるいは処理結果が必ず出るのであれば、それが出なければクリックをリトライする案もあるかもしれません。

早速の回答ありがとうございます。

画面とUipathとの動作がアンマッチとなっているのは

(Uipath) → (画面)
画面_入力項目へセット → 画面_入力項目へセット
画面_「登録」ボタンクリック → 画面_入力項目へセット中
画面_処理結果のステータスメッセージを取得

「登録」ボタンのクリックが先に走ってしまっているような状況です。
ちなみに「登録」ボタンは、画面描画時にActiveとなっており、入力項目のセットをせずとも「登録ボタンは押せてしまいますため、「属性を取得」で押せる状態を判断する手段は取れない認識です。
「登録」ボタンはクリックできれば、画面上からは消えます。

引き続きよろしくお願いいたします。

こんにちは

入力項目へのセットは、ショートカットキー操作等でしょうか?
通常のTypeInto等の入力ですと、入力自体は同期されるように思えますが…

もし対象システムがWebでしたら
Inject JS Scriptアクティビティでフォーカスの有無は確認できると思います。
当該ボタンを対象とした上で、
スクリプトコード欄に

"function(e,v){return (document.activeElement === e);}"

とすれば、outputでtrue/falseが返ってくると思います。

Yoichi様

入力項目へのセットは、SetValueで行っております。
そして対象のシステムはYoichi様の予想通り、Webでございます。

通常、「入力自体は同期される」とのことですが、
画面の入力終了を待って次アクティビティが行われるというイメージでしょうか?

また、フォーカス有無を確認できる手段としてInject JS Scriptsアクティビティの利用について
お知らせくださりありがとうございます。

VBなどではできるはずなのに、、、といったところでモヤモヤが晴れて参りました。

近日中に動作検証しこちらへ書き込みいたします!

Yoichi様

こんにちは。
動作検証してみました。

①(繰り返し) strResult <> “true”
①-1:「登録」ボタンへセットフォーカス
①-2:「登録」ボタンを対象として、J S Sctiptアクティビティ
(入力コード:“function(e,v){return (document.activeElement === e);}”)
(出力:strResult)

②:メッセージ表示 (strResult)

①-1 を外すなどして、②で確認をとれている状況です。
部分実行での動作は確認できたため、本フローのほうへ組み入れて参りたいと思います。

一旦は解決ということでクローズでのお取り扱いをお願い致します。
この度はご助言のほどありがとうございました。

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.