Typeintoアクティビティでのホットキー入力について

TypeIntoアクティビティを利用して以下のような処理を自動化しようとしています。

①Webからスクレイピング
②Excelに範囲に書き込みを使用しスクレイピングした内容(datatable)を貼り付け
③貼り付けたシートから別のシートへコピー&ペースト

③の処理で、[k(f2)][d(ctrl)]ac[k(pgdn)]v[u(ctrl)]・・・・と記述しており、
上手く貼り付けできる場合と、「v」の文字だけだったり、何も貼り付けれなかったりします。

解決策はあるのでしょうか?それとも「ホットキーを押下」アクティビティで地道に1つずつ入力する必要があるのでしょうか?

コピー先のシートを対象に、改めて「範囲を読み込む」アクティビティで読み込んではいかがでしょう?

1 Like

HANACCHI様

回答頂きありがとうございます。

説明足らずで申し訳ありません。
読み込む処理は上手くできており、貼り付けも上手くできます。
ただ、本来3行で分けて出力させたいところ、スクレイピングした際に1行で出力されてしまっています。
なので一度貼り付けて、F2キーでセルの編集状態にした後で全選択をして、別シートに張り付けて3行に分けようとしていました。

範囲を読み込むアクティビティだとまた同じように複数行が1行の塊となって読み込まれてしまうため上手くいきませんでした。。

こんにちは

ただ、本来3行で分けて出力させたいところ、スクレイピングした際に1行で出力されてしまっています。

EXCELに書き込む手前で処理をしてしまったほうが安定するような気もしますが...
類似になりますが以下のような話に近いかもしれません。

③の処理で、[k(f2)][d(ctrl)]ac[k(pgdn)]v[u(ctrl)]・・・・と記述しており、
上手く貼り付けできる場合と、「v」の文字だけだったり、何も貼り付けれなかったりします。

おそらくタイミングの問題等でキー入力が空振りしているのではないかと思います。
Type IntoのDefaultモードで入力しているのであれば、DelayBetweenKeys(キー入力間の待機時間)プロパティの値を大きめにすることによりキープレス間の間隔が長くなります。これにより、空振りする確率が小さくなる場合があるので、一度試してみては?と思います。

2 Likes

Yoichi様

回答頂きありがとうございます。
Excelに入力する前に処理できたらいいな、、とは思っていました。
参考ページを教えて頂きありがとうございます。

DelayBetweenKeysについても触ってみました。
デフォルトの時間から倍にしてみたところ、かなり改善されましたが、数か所上手くコピペされて
いない箇所がありました。もう少し触ってみようかなと思います。

1 Like

こんにちは

以下補足になりますが...
DelatBetweenkeysは一律にしか待機時間を設定できませんので、特定の部分だけの待ち時間を長くしたい場合は、アクティビティを分けることによりアクティビティ自体のDelayBeforeやDelayAfterあるいは間にDelayActivityで調整することも可能です。

理想的には各アクション完了時に起きるであろう画面変化の完了をFind Elementなどで確認してから次のアクションを起こすことが良いのですが、出来ない場合もあるので、その場合は、最終的な成否を判断して、失敗しているようならRetryするようなことも組み入れると、より安定すると思います。

1 Like

Yoichi様

こんにちは

補足の説明ありがとうございます。

実はホットキーの押下アクティビティで全てのキーを入力した場合は、
上手く動作することを確認していました。
ただ、TypeIntoアクティビティでできない理由が分からなかったため質問させていただきました。
やはり待機時間を設定することで調整するのが良さそうですね。

Retryする仕組みは組み込みたいなと思っていました。。
Yoichi様は普段どのアクティビティで実装していますか?
Retry Scopeとかを使うのでしょうか?

こんにちは

Retry Scopeとかを使うのでしょうか?

当該処理で例外が発生した場合にその内容把握が必要のないようなケースは、Retry Scopeを使うケースが多いです。詳細な制御が必要な場合は自前でループを作りTryCatchや要素有無検出などを使います。

1 Like

Yoichi様

制御が必要な場合は、自前でループを作成するのですね。
貴重な情報をありがとうございます。

1 Like

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