文字を入力(TypeInto)で値が途中から入力される

ブラウザの入力項目(ポップアップウインドウ)に、TypeIntoで変数値を入力させています。
デバッグのステップインで行うと正常に動作するのですが、実行すると値入力がうまくいきません。
どのように設定すれば良いか教えて下さい。

例えば、変数値が[ABCDE]の場合、
①ウィンドウメッセージを送信:True
→画面のように途中から[CDE]と入力され、次処理「虫眼鏡マーク」をクリックする
②入力をシミュレート:True
→何も入力されず、次処理「虫眼鏡マーク」をクリックする
③デフォルトの場合
→①と同じ

こんにちは

入力可能となる前に入力処理が行われているように思えます。
原因の切り分けのためにTypeIntoの前に2-3秒のDelayを入れてみて、
問題が解消するかを確認してみてはいかがでしょうか?

上記で解消するようでしたら、対応案としては以下のようなことが考えられます

1.入力後に、入力したデータをGetText等で取得し、想定しているものと合致しているかを確認する
違えばリトライ
2.“ABCDE” と入力するのではなく、文字列をクリップボードに移しておいて、CTRL+vで貼り付け
必要に応じて1と組み合わせ。
3.待機+入力をシミュレートが有効であれば、1と組み合わせる。
4.3が効かない場合は、セレクターの見直し。

2 Likes

Yoichiさん
ありがとうございます。
Delayで解消したので、ご提案頂いた1で解決しました。

「合致しているかを確認」はどのように行いますか?
リトライの条件に文字列の一致をチェック(IsMatch)を使用しましたが
他に方法があれば教えてください。

「入力可能になる前に入力処理が行われる」は、「準備完了まで待機」の設定項目では制御できないのでしょうか。

1 Like

こんにちは

Delayで解消したので、ご提案頂いた1で解決しました。

もしSimulateTypeが効くようなら、そちらの方がベターですので、リトライと組み合わせたそちらも検討ください。

「合致しているかを確認」はどのように行いますか?
リトライの条件に文字列の一致をチェック(IsMatch)を使用しましたが
他に方法があれば教えてください。

IsMatchアクティビティは正規表現による判断を行いますので、期待しているものと異なる結果となる場合があります。(例えば、対象文字列の中にパターン文字列が含まれるだけでTrueになりますし、パターン文字列中に正規表現の特殊文字があると、期待した動作にはならない可能性があります。)

そのためリトライの中でCehck Trueアクティビティを用い、単純な等号での判断が良いように思えます。(不一致の場合例外となり、リトライ対象となります。リトライの条件部分は空欄でも動作します。)

「入力可能になる前に入力処理が行われる」は、「準備完了まで待機」の設定項目では制御できないのでしょうか。

「準備完了まで待機」は非同期に実行される処理等いくつかの処理は待機の対象となりませんので、今回のケースでは意味を持たなかったものと思います。

2 Likes

Yoichiさん
ありがとうございます。勉強になりました。

はい。以前ここの設定の優先順位を教えて頂いていたので、入力をシミュレート:Trueで設定しました。

こちらに変えて実行し、動作確認しました!

1 Like

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