アプリ/Webの画面を開いたら、すぐに情報なデータを得られることはほとんどないでしょう。
少なからず、何かしらの入力をしたり、クリックなどのアクションが必要となることが多いはずです。
StudioXには、画面上を操作するための必要十分なアクティビティが用意されており、さらに、入力モードを理解すると、高速な処理も可能になります。
この記事では、以下のアクティビティについて解説します。
マウス・キー操作のアクティビティ
- キーボードショートカット
- 文字を入力
- ホバー
- クリック
- マウススクロール
- チェック/チェック解除
- 項目を選択
- ドラッグアンドドロップ
もくじ
キーボードショートカット
UI要素に1つ以上のキーボードショートカットを送信します。(ガイドはこちら)
リソースで指定したアプリ/Webに、ショートカットキーを送信します。
ショートカットキーを使うと、操作のステップ数が減ることも多いので、機能として用意されている場合は活用しましょう。
ショートカットキーの方がクリックよりも確実に操作される安定感があります。(※個人的な意見です)
ここでは、以下の項目について解説します。
- [ショートカットを記録]と[キーの組み合わせを送信]
- アクティブ化
- ショートカットキー入力間の待機時間
- 入力モード
- 入力前にクリック
- 実行を検証
- 入力要素
- 出力要素
- エラー発生時に実行を継続
- タイムアウト
- 実行前の待機時間
- 実行後の待機時間
[ショートカットを記録]と[キーの組み合わせを送信]
送信するショートカットキーを指定します。
記録する方法は、以下3つが用意されていますので、使いやすいものを選ぶといいでしょう。
ショートカットを記録
ショートカットキーを1つ入力したら、記録が終了します。
複数のショートカットを記録
ショートカットキーを連続して記録します。
ショートカットを手動で追加
予め用意されているボタンやリストから選んで、ショートカットキーを追加する方法です。
ボタンには、よく使う[Win],[Ctrl],[Alt],[Shift]が用意されていますね。
それ以外の特殊キー(普通のキー含)を指定したい場合は、ドロップダウンリストから選択しましょう。
なお、ボックスに直接文字を入力することも可能です。
例えば、"Ctrl+A"を追加したい場合は、[Ctrl]をクリック後、ボックスに"A"を入力し、[追加]をクリックします。
アクティブ化
チェックON(True)にすると、ショートカットキーの入力前に、対象のアプリ/Webを前面に移動し、アクティブにします。
初期値はチェックON(True)です。
なお、チェックOFF(False)にすると、ショートカットキーがアプリ/Webに送信されないため、特別な事情がない限りチェックONのままにしておきましょう。
ショートカットキー入力間の待機時間
複数のショートカットキーを追加した時に、ショートカットと次のショートカットとの間の、待機時間(秒)を指定します。
既定値は0.5秒で、最大値は1秒です。また、小数点の指定が可能です。
入力モード
ショートカットキー入力操作時に、どの制御を利用するか指定します。
[入力モード]で選択できる項目については、こちらを参照ください。
バックグラウンドだと、ショートカットキーが反応しないので注意しましょう。
入力前にクリック
ショートカットキー実行の前に、クリックorダブルクリックを実行します。
種類 | 動作 |
NClickMode.None | クリックしない |
NClickMode.Single | シングルクリックを実行 |
NClickMode.Double | ダブルクリックを実行 |
初期値は"NClickMode.None"です。
実行を検証
ショートカットキー実行後に、正しくアプリ/Webが反応したかを検証します。
詳細は、こちらを参照ください。
入力要素
他のアプリ/Web系アクティビティで参照した項目(UI要素)と、同じものを参照したい場合に指定します。
この項目を使うためには、予め別のアプリ/Web系アクティビティで[出力要素]を指定しておく必要があります。
ただ、[キーボードショートカット]アクションは、必ずリソースの中に追加するものですので、注意してください。
そして、リソース内に追加した時点で、自動的にリソースが設定されるため、[入力要素]で指定する機会はあまりないでしょう。
(リソースを2重にしている場合は、選択する必要があります。)
出力要素
[キーボードショートカット]アクションで指定したUI(リソース)を、他のアクティビティで参照するため、変数に記憶します。
エラー発生時に実行を継続
チェックON(True)にすると、ショートカットキーの送信が失敗しても処理を継続し、次のアクティビティを実行します。
結果の成功/失敗を検証するために、[実行を検証]を有効にしておく必要があります。
タイムアウト
ショートカットキーが送信されるまで、待機する時間です。
詳細は、こちらを参照ください。
ショートカットが正しく送信されたかを判定するために、[実行を検証]を有効にしておく必要があります。
実行前の待機時間
一つ前のアクティビティから、ショートカットキーを送信するまでの間に、待機する時間を指定します。
"1.5"のように、小数点以下の指定も可能です。
既定値は0.2秒です。
実行後の待機時間
ショートカットキーを送信した後から、次のアクティビティを実行するまでに、待機する時間を指定します。
"1.5"のように、小数点以下の指定も可能です。
既定値は0.3秒です。
文字を入力
指定したテキストをターゲットUI要素内に入力します。(ガイドはこちら)
テキストを入力するアクティビティです。
テキストを入力すると言えば、多くはテキストボックスに対してでしょう。
普通のテキストボックスだけでなく、パスワード入力用にも対応しています。
更に、TabやEsc、Enterなどの特殊キーも、このアクティビティを使用することで入力可能になります。
ここでは、以下の項目について解説します。
- 画面上でターゲットを指定
- [標準/セキュリティ保護]と[以下を入力]
- パスワードモードの切り替え
- 入力前にフィールド内を削除
- 入力前にクリック
- 入力モード
- 無効な要素を変更
- 終了時に選択解除
- アクティブ化
- キー入力間の待機時間
- 実行を検証
- 入力要素
- 出力要素
- エラー発生時に実行を継続
- タイムアウト
- 実行前の待機時間
- 実行後の待機時間
画面上でターゲットを指定
文字を入力したい対象(UI要素)を指定します。
もちろん、テキストボックス以外にもメモ帳などの編集領域を指定することもありますね。
対象(UI要素)を指定する方法は、こちらを参照ください。
[以下を入力]と[標準/セキュリティ保護]
入力するテキスト、または入力するキーを指定します。
ラジオボタンで、"標準"と"セキュリティ保護"があり、どちらを選択するかにより、入力内容が切り替わります。
[標準]を選択
[+]メニューにあるノートブックやクリップボード、引数、テキスト、特殊キーなどから指定できます。
パスワードモードの切り替え
をクリックすると、テキストが伏せ字になります。
もう一度をクリックすると、平文に戻ります。
パスワードを、簡易的に隠したい場合には便利ですが、できる限り[セキュリティ保護]を使用することをお勧めします。
キー入力のみで画面を遷移できる
特殊キーが指定できることで面白い使い方があるので、紹介しておきましょう。
Unicorn Name Generatorは、自分のユニコーンを作成してくれる練習用サイトですが、こちらを題材にします。
サイトの使い方に難しいことはありませんが、手順を箇条書きすると、以下のようになります。
- Nameにテキストを入力
- ドロップダウンボックスをクリックして誕生日を選択
- [Get Unicorn Name]をクリック
普通は、上記手順のように、各項目をクリックしながら値を入力するでしょう。
そしてこの操作は、キーボードの入力だけでも可能です。
- Nameにテキストを入力
- [Tab]キーを押下 → [ ↓ ]キーを1~12回押下
- [Tab]キーを押下→ [Enter]キーを押下
[文字を入力]アクションを使えば、この一連の操作をまとめて入力できるわけです。
例えば、Nameを"shoji"、誕生日をFeburuaryにしたい場合、以下のようになります。

[セキュリティ保護]を選択
[セキュリティ保護]を選択すると、暗号化されたテキストを選択できるようになります。
ログイン画面などのパスワードのように伏字で入力する際に使用するといいでしょう。
なお、[セキュリティ保護]のメニューに表示されるのは、以下2つで設定した値です。
セキュリティ保護で参照可能なアクティビティ
- [ユーザー名/パスワードを取得]のパスワード
- [Orchestrator の資格情報を取得]
入力前にフィールド内を削除
既に入っている文字列を一度削除します。
以下の3種類が用意されていますので、適したものを選択してください。
- なし
- 単一行(End、Shift+Home、Del)
- 複数行(Ctrl+A、Del)
なお、既に入力されているテキストを削除するためだけにこのアクティビティを使う場合、[以下を入力]へテキストを空にしておけばOKです。
それから、[入力モード]は"ハードウェアイベント"を指定してください。
ガイドには記載されていませんが、"ChromiumAPI"でもOKです。
入力前にクリック(ハードウェアイベント)
[入力モード]が"ハードウェアイベント"である場合に適用されます。
入力する前に、対象(UI要素)をクリックします。
3つの項目が用意されています。
- なし
- シングル
- ダブル
初期値は"シングル"です。大抵は、シングルクリックで問題なく入力できるでしょう。
入力モード
文字を入力する際に、どの制御を利用するか指定します。
[入力モード]で選択できる項目については、こちらを参照ください。
入力モードの自動検知機能
もし、どのモードにすればいいか分からない場合は、最適なモードを検知してくれる機能が用意されています。
自動でモードを見つけてくれるのは便利ですね。
必ずベストなモードが選択されるとは限りませんが、手軽にチューニングできるのはメリットですね。
無効な要素を変更(ハードウェアイベント以外)
[入力モード]が"ハードウェアイベント"以外である場合に適用されるオプションです。
チェックON(True)にすると、対象(UI要素)が文字入力できないステータスになっていても、強制的に文字を書き込みます。
なお、文字入力不可のステータスには、"disable"と"readonly"の2種類がありますが、どちらでも入力可能です。
終了時に選択解除(シミュレート)
[入力モード]が"シミュレート"である場合に適用されるオプションです。
完了イベントを送信するかどうかを指定します。
アプリケーションの中には、文字を入力した後に完了イベントを送信しないと、入力が反映されないものがあります。
僕の持っているソフトウェアで、完了イベントが必要なものがないか探してみたものの、あいにく見つからず。
チェックON(True)が必要なものは、そう多くないのかもしれません。
アクティブ化(ハードウェアイベント/ChromiumAPI)
[入力モード]が"ハードウェアイベント/ChromiumAPI"である場合に適用されるオプションです。
文字を入力する直前に、アプリ/Web画面をアクティブに(前面に移動)します。
キー入力間の待機時間(ハードウェアイベント/ChromiumAPI)
[入力モード]が"ハードウェアイベント/ChromiumAPI"である場合に適用されるオプションです。
キー入力とキー入力の間について、待機時間を指定します。
小数点単位で指定できますが、最大は1秒までとなっています。
実行を検証
文字入力後に、正しくアプリ/Webが反応したかどうかを検証します。
詳細は、こちらを参照ください。
入力要素
他のアプリ/Web系アクティビティで参照した項目(UI要素)と、同じものを利用したい場合に指定します。
この項目を使うためには、予め別のアプリ/Web系アクティビティで[出力要素]を指定しておく必要があります。
出力要素
[文字を入力]アクションで指定した項目(UI要素)を、他のアクティビティで参照するため、変数に記憶します。
エラー発生時に実行を継続
チェックON(True)にすると、文字の入力を失敗しても処理を継続し、次のアクティビティを実行します。
入力に失敗したとき、次のステップへ進めても問題ない場合は、チェックON(True)にしておきましょう。
タイムアウト
文字が入力されるまで、待機する時間です。
詳細は、こちらを参照ください。
実行前の待機時間
一つ前のアクティビティから、文字を入力するまでの間に、待機する時間を指定します。
"1.5"のように、小数点以下の指定も可能です。
既定値は0.2秒です。
実行後の待機時間
文字を入力した後から、次のアクティビティを実行するまでに、待機する時間を指定します。
"1.5"のように、小数点以下の指定も可能です。
既定値は0.3秒です。
ホバー
指定したUI要素上でホバーします。(ガイドはこちら)
ホバーとは、マウスカーソルを、任意の項目(UI要素)上に乗せることです。
アプリ/Webの中には、マウスカーソルをターゲットの上に移動したり、ターゲットから外したりするだけで変化するものがありますよね。
つまり、単にマウスを動かしたい場合に[ホバー]を利用します。
ここでは、以下の項目について解説します。
- 画面上でターゲットを指定
- 継続時間
- 入力モード
- カーソルの動きの種類
- 実行を検証
- 入力要素
- 出力要素
- エラー発生時に実行を継続
- タイムアウト
- 実行前の待機時間
- 実行後の待機時間
画面上でターゲットを指定
マウスカーソルをホバーしたい対象(UI要素)を指定します。
対象(UI要素)を指定する方法は、こちらを参照ください。
継続時間
マウスカーソルが対象(UI要素)まで移動した後、その場に待機する時間を指定します。
既定値は1秒です。また、小数点の指定が可能です。
なお、[プロパティ]パネルからであれば、▼をクリックして1秒,3秒,5秒の中から選択できるようになっています。
入力モード
マウスカーソルをホバーする際に、どの制御を利用するか指定します。
[入力モード]で選択できる項目については、こちらを参照ください。
カーソルの動きの種類(ハードウェアイベント)
[入力モード]が"ハードウェアイベント"である場合に適用されるオプションです。
詳細は、こちらを参照ください。
入力モードが"ハードウェアイベント"以外の場合、実際のマウスは動かないものの、アプリ/Web内ではマウスがホバーしたと認識します。
実行を検証
ホバー後に、正しくアプリ/Webが反応したかどうかを検証します。
詳細は、こちらを参照ください。
入力要素
他のアプリ/Web系アクティビティで参照した項目(UI要素)と、同じものを利用したい場合に指定します。
この項目を使うためには、予め別のアプリ/Web系アクティビティで[出力要素]を指定しておく必要があります。
出力要素
[ホバー]アクションで指定した項目(UI要素)を、他のアクティビティで参照するため、変数に記憶します。
エラー発生時に実行を継続
チェックON(True)にすると、ホバーを失敗しても処理を継続し、次のアクティビティを実行します。
ホバーに失敗したとき、次のステップへ進めても問題ない場合は、チェックON(True)にしておきましょう。
タイムアウト
ホバーが実行されるまで、待機する時間です。
詳細は、こちらを参照ください。
実行前の待機時間
一つ前のアクティビティから、ホバーするまでの間に、待機する時間を指定します。
"1.5"のように、小数点以下の指定も可能です。
既定値は0.2秒です。
実行後の待機時間
ホバーした後から、次のアクティビティを実行するまでに、待機する時間を指定します。
"1.5"のように、小数点以下の指定も可能です。
既定値は0.3秒です。
クリック
指定したUI要素をクリックします。(ガイドはこちら)
主にボタンなど、対象(UI要素)をクリックします。
単純な左クリックだけでなく、ダブルクリックや右クリック、キーを押しながらのクリックなど、様々なクリックアクションに対応していますね。
ここでは、以下の項目について解説します。
- 画面上でターゲットを指定
- [クリックの種類]と[マウスボタン]
- キー修飾子
- 入力モード
- 無効な要素を変更
- カーソルの動きの種類
- 実行を検証
- 入力要素
- 出力要素
- エラー発生時に実行を継続
- タイムアウト
- 実行前の待機時間
- 実行後の待機時間
画面上でターゲットを指定
クリックしたい対象(UI要素)を指定します。
対象(UI要素)を指定する方法は、こちらを参照ください。
[クリックの種類]と[マウスボタン]
[クリックの種類]では、”シングル"、"ダブル"、"上"、"下"の中から選択します。
[マウスボタン]は、"左"、"右"、"中央"から選択します。
この2つの組み合わせで、様々なバリエーションのマウスクリックになります。
[クリックの種類]の”シングル"と"ダブル"は、そのままシングルクリックとダブルクリックですね。
"上"は「指を離す」、"下"は「押したままにする」という意味になります。

[マウスボタン]の"左"と"右"は、まあ分からない人はいないでしょう。
"中央"は、センターホイールのことです。
標準では、センターホイールのクリックに割り当てられていないので、使う機会はほとんどないかもしれません。
キー修飾子
マウスクリックと同時に、押下する特殊キーを指定します。
指定できるのは、"Alt"、"Ctrl"、"Shift"、"Win"の4つです。
入力モード
クリックする操作に、どの制御を利用するか指定します。
[入力モード]で選択できる項目については、こちらを参照ください。
[入力モード]に"シミュレート"を指定している場合は、左クリックのみとなり、[キー修飾子]の指定が出来ません。
無効な要素を変更(ハードウェアイベント以外)
[入力モード]が"ハードウェアイベント"以外である場合に適用されるオプションです。
チェックON(True)にすると、対象(UI要素)が無効のステータスになっていても、強制的にクリックします。
いろいろと試したのですが、ver2022.4.4では、ハードウェア以外でもクリックが出来ず、正常系を再現できませんでした。
カーソルの動きの種類(ハードウェアイベント)
[入力モード]が"ハードウェアイベント"である場合に適用されるオプションです。
詳細は、こちらを参照ください。
実行を検証
クリック後に、正しくアプリ/Webが反応したかどうかを検証します。
詳細は、こちらを参照ください。
入力要素
他のアプリ/Web系アクティビティで参照した項目(UI要素)と、同じものを利用したい場合に指定します。
この項目を使うためには、予め別のアプリ/Web系アクティビティで[出力要素]を指定しておく必要があります。
出力要素
[クリック]アクションで指定した項目(UI要素)を、他のアクティビティで参照するため、変数に記憶します。
エラー発生時に実行を継続
チェックON(True)にすると、クリックが失敗しても処理を継続し、次のアクティビティを実行します。
失敗したとき、次のステップへ進めても問題ない場合は、チェックON(True)にしておきましょう。
タイムアウト
クリックが実行されるまで、待機する時間です。
詳細は、こちらを参照ください。
実行前の待機時間
一つ前のアクティビティから、クリックするまでの間に、待機する時間を指定します。
"1.5"のように、小数点以下の指定も可能です。
既定値は0.2秒です。
実行後の待機時間
ホバーした後から、次のアクティビティを実行するまでに、待機する時間を指定します。
"1.5"のように、小数点以下の指定も可能です。
既定値は0.3秒です。
マウススクロール
指定したUI要素までスクロールするマウススクロールイベントを送信します。(ガイドはこちら)
リソースに指定したアプリ/Webを、画面スクロールします。
なお、スクロールはアプリ/Webが前面(アクティブ)でないと動作しません。
ここでは、以下の項目について解説します。
- 方向スクロールの種類
- カーソルの動きの種類
- キー修飾子
- 入力要素
- 出力要素
- エラー発生時に実行を継続
- タイムアウト
- 実行前の待機時間
- 実行後の待機時間
方向
[方向]で指定した方向にスクロールします。
上下左右のいずれかから指定します。

スクロールの種類
[スクロールの種類]では、以下2つの項目から選択することになります。
- 指定の要素まで
- 距離
どちらを指定したかにより、次の項目が変化するので、併せて見ていきましょう。
指定の要素まで
表示させたい対象(UI要素)までスクロールします。
[指定の要素まで]を選択すると、[要素までスクロール]が表示されます。
[次で指定]をクリックして、表示させたい対象を指定してください。
練習用サイトSupplier Management Systemで、ID13番までスクロールする例を見てみましょう。
表示したい対象が見つからないとき
ロード時間が長いときなど、スクロール先がすぐに見つからない場合に、[方向]と[スクロール回数]が意味を持ちます。
例えば下図の場合は、対象が見つかるまで「下方向に10スクロール」を繰り返します。
[タイムアウト]に指定した時間(既定値は30秒)まで繰り返し、見つからなかった場合はエラーになります。
距離
[方向]に向かって、指定した回数だけスクロールします。
カーソルの動きの種類(ハードウェアイベント)
[入力モード]が"ハードウェアイベント"である場合に適用されるオプションです。
詳細は、こちらを参照ください。

キー修飾子
マウススクロール時に押下する特殊キーを指定します。
指定できるのは、"Alt"、"Ctrl"、"Shift"、"Win"の4つです。
入力要素
他のアプリ/Web系アクティビティで参照した項目(UI要素)と、同じものを参照したい場合に指定します。
この項目を使うためには、予め別のアプリ/Web系アクティビティで[出力要素]を指定しておく必要があります。
[マウススクロール]アクションは、必ずリソースの中に追加してください。
リソース内に追加した時点で、自動的にリソースが設定されるため、[入力要素]で指定する機会は少ないでしょう。
出力要素
[スクロール]アクションで指定した項目(UI要素)を、他のアクティビティで参照するため、変数に記憶します。
[検索する要素]ではないことに注意してください。
エラー発生時に実行を継続
チェックON(True)にすると、スクロールに失敗しても処理を継続し、次のアクティビティを実行します。
失敗したとき、次のステップへ進めても問題ない場合は、チェックON(True)にしておきましょう。
タイムアウト
スクロールできるようになるまで、待機する時間です。
詳細は、こちらを参照ください。
実行前の待機時間
一つ前のアクティビティから、スクロールするまでの間に、待機する時間を指定します。
"1.5"のように、小数点以下の指定も可能です。
既定値は0.2秒です。
実行後の待機時間
スクロールした後から、次のアクティビティを実行するまでに、待機する時間を指定します。
"1.5"のように、小数点以下の指定も可能です。
既定値は0.3秒です。
チェック/チェック解除
チェックボックスをオン/オフにするか、切り替えます。(ガイドはこちら)
チェックボックスをチェック(ON/OFF)に指定します。
ラジオボタンの選択にも使用できます。
【チェックボックス】 ひとつめ ふたつめ みっつめ |
【ラジオボタン】 ひとつめ ふたつめ みっつめ |
ここでは、以下の項目について解説します。
- 画面上でターゲットを指定
- アクション
- 無効な要素を変更
- 入力要素
- 出力要素
- エラー発生時に実行を継続
- タイムアウト
- 実行前の待機時間
- 実行後の待機時間
画面上でターゲットを指定
チェックON/OFFしたい対象(UI要素)を指定します。
対象(UI要素)を指定する方法は、こちらを参照ください。
アクション
対象をチェックONにするか、チェックOFFにするのかを指定します。
以下の3つから選択します。
- チェック
- チェック解除
- 切り替え
"切り替え"は、対象がチェックONであればOFFに、チェックOFFであればチェックONにします。
チェックの状態を切り替えることを、"トグル"と言います。ガイドには"トグル"と記載されていますね。
ラジオボタンの場合、対象をチェックOFFにすることは出来ません。
無効な要素を変更(ハードウェアイベント以外)
[入力モード]が"ハードウェアイベント"以外である場合に適用されるオプションです。
チェックON(True)にすると、対象(UI要素)が無効のステータスになっていても、強制的にチェックボックスをチェックON/OFFします。
入力要素
他のアプリ/Web系アクティビティで参照した項目(UI要素)と、同じものを利用したい場合に指定します。
この項目を使うためには、予め別のアプリ/Web系アクティビティで[出力要素]を指定しておく必要があります。
出力要素
[チェック/チェック解除]アクションで指定した項目(UI要素)を、他のアクティビティで参照するため、変数に記憶します。
エラー発生時に実行を継続
チェックON(True)にすると、ターゲットのチェックON/OFFの切り替えに失敗しても処理を継続し、次のアクティビティを実行します。
失敗したとき、次のステップへ進めても問題ない場合は、チェックON(True)にしておきましょう。
タイムアウト
チェックON/OFFが実行されるまで、待機する時間です。
詳細は、こちらを参照ください。
実行前の待機時間
一つ前のアクティビティから、チェックON/OFFするまでの間に、待機する時間を指定します。
"1.5"のように、小数点以下の指定も可能です。
既定値は0.2秒です。
実行後の待機時間
チェックON/OFFした後から、次のアクティビティを実行するまでに、待機する時間を指定します。
"1.5"のように、小数点以下の指定も可能です。
既定値は0.3秒です。
項目を選択
コンボボックスまたはリストボックスから項目を選択します。画面上で要素を指定すると、選択可能なすべてのオプションの一覧がアクティビティ内に表示されます。(ガイドはこちら)
コンボボックス、またはリストボックスにある項目を選択します。
ちなみに、コンボボックスやリストボックスとは、このようなものです。
【コンボボックス】 |
【リストボックス】 スマホだと正しく表示されないかも。 |
先に触れておくと、リストボックスでは複数の項目を選択できるものがありますが、StudioXでは複数選択するアクティビティが用意されていません。
Studioには、[複数の項目を選択]というアクティビティがありますね。
ここでは、以下の項目について解説します。
- 画面上でターゲットを指定
- 選択する項目
- 無効な要素を変更
- 入力要素
- 出力要素
- エラー発生時に実行を継続
- タイムアウト
- 実行前の待機時間
- 実行後の待機時間
画面上でターゲットを指定
項目を選択したい対象(UI要素)を指定します。
対象(UI要素)を指定する方法は、こちらを参照ください。
選択する項目
コンボボックスにある項目から、選択したいものを指定します。
例えば、下図のコンボボックスには、"サンプル1"~"サンプル5"が選択肢にありますよね。
この選択肢を自動的に読み取って、選択できるようになっています。
これは助かる機能ですね。
無効な要素を変更(ハードウェアイベント以外)
[入力モード]が"ハードウェアイベント"以外である場合に適用されるオプションです。
チェックON(True)にすると、対象(UI要素)が無効のステータスになっていても、強制的に項目を選択します。
いろいろと試したのですが、ver2022.4.4では、ハードウェア以外でも選択が出来ず、正常系を再現できませんでした。
入力要素
他のアプリ/Web系アクティビティで参照した項目(UI要素)と、同じものを[ソース要素]で利用したい場合に指定します。
この項目を使うためには、予め別のアプリ/Web系アクティビティで[出力要素]を指定しておく必要があります。
出力要素
[項目を選択]アクションで指定した項目(UI要素)を、他のアクティビティで参照するため、変数に記憶します。
エラー発生時に実行を継続
チェックON(True)にすると、項目の選択に失敗しても処理を継続し、次のアクティビティを実行します。
失敗したとき、次のステップへ進めても問題ない場合は、チェックON(True)にしておきましょう。
タイムアウト
項目が選択されるまで、待機する時間です。
詳細は、こちらを参照ください。
実行前の待機時間
一つ前のアクティビティから、項目を選択するまでの間に、待機する時間を指定します。
"1.5"のように、小数点以下の指定も可能です。
既定値は0.2秒です。
実行後の待機時間
項目を選択した後から、次のアクティビティを実行するまでに、待機する時間を指定します。
"1.5"のように、小数点以下の指定も可能です。
既定値は0.3秒です。
ドラッグアンドドロップ
ソース UI 要素からターゲット UI 要素へのドラッグ アンド ドロップ操作を実行します。(ガイドはこちら)
オブジェクト(主に画像などのイメージ)を、別の位置にドラッグアンドドロップします。
このアクティビティを使ってアクティビティをデザイナーパネルに追加してみると、以下のような動きをします。(StudioXの自動化でStudioXの編集を操作するという、変なことをやっちゃってますが。)
ここでは、以下の項目について解説します。
- ソース要素
- ターゲット要素
- アクション間の待機時間
- キー修飾子
- マウスボタン
- 入力要素
- 出力要素
- エラー発生時に実行を継続
- タイムアウト
- 実行前の待機時間
- 実行後の待機時間
ソース要素
ドラッグアンドドロップしたい対象(UI要素)を指定します。
対象(UI要素)を指定する方法は、こちらを参照ください。
ターゲット要素
ドラッグアンドドロップ先の対象(UI要素)を指定します。
対象(UI要素)を指定する方法は、こちらを参照ください。
アクション間の待機時間
ドラッグアンドドロップの、アクションの間で待機する時間を指定します。
初期値は0.3秒です。
待機は、複数のタイミングで行われています。
下図は、マウスの動きと待機するポイントを示したものですが、待機時間が適用されるのは、つまり4か所です。
キー修飾子
マウスクリックと同時に、押下する特殊キーを指定します。
指定できるのは、"Alt"、"Ctrl"、"Shift"、"Win"の4つです。
マウスボタン
マウスクリックのボタンを指定します。
"Left"、"Right"、"Middle"から選択してください。
規定値は"Left"です。
"Miidle"は、センターホイールのことですね。
入力要素
他のアプリ/Web系アクティビティで参照した項目(UI要素)と、同じものを[ソース要素]に利用したい場合に指定します。
この項目を使うためには、予め別のアプリ/Web系アクティビティで[出力要素]を指定しておく必要があります。
ver2022.4.4では、不具合なのか[ターゲット要素]の"入力要素"まで切り替わってしまいますが、実際に適用されているのは[ソース要素]のみです。
出力要素
[ターゲット要素]で指定した項目(UI要素)を、他のアクティビティで参照するため、変数に記憶します。
エラー発生時に実行を継続
チェックON(True)にすると、ドラッグアンドドロップに失敗しても処理を継続し、次のアクティビティを実行します。
失敗したとき、次のステップへ進めても問題ない場合は、チェックON(True)にしておきましょう。
タイムアウト
ドラッグアンドドロップができるようになるまで、待機する時間です。
詳細は、こちらを参照ください。
実行前の待機時間
一つ前のアクティビティから、ドラッグアンドドロップするまでの間に、待機する時間を指定します。
"1.5"のように、小数点以下の指定も可能です。
既定値は0.2秒です。
実行後の待機時間
ドラッグアンドドロップの後から、次のアクティビティを実行するまでに、待機する時間を指定します。
"1.5"のように、小数点以下の指定も可能です。
既定値は0.3秒です。
ここまでのアクティビティの共通項目
ここまでのアクティビティ([キーボードショートカット]~[ドラッグアンドドロップ])に、共通して存在する項目についてこちらにまとめました。
各アクティビティから、必要な項目へリンク出来るようにしています。
画面上でターゲットを指定
アクティビティの対象(UI要素)を指定します。
以下は、[文字を入力]アクションで対象(UI要素)を指定した場合の例です。
入力モード
文字を入力する際に、どの制御を利用するか指定します。
制御には、以下の4つがあります。
- アプリ/ブラウザーと同一
- ハードウェアイベント
- シミュレート
- Chrome API
- ウィンドウメッセージ
アプリ/ブラウザーと同一
リソースに指定した入力モードと同じ制御にします。
ハードウェアイベント
どのアプリ/Webにも対応できる、最も汎用的な制御です。
実際に人が操作するクリックや入力操作が自動化されるようなものなので、対象のアプリ/Webが、アクティブ(画面の前面)でなければなりません。
シミュレート
Webの操作、Javaアプリの操作に強い制御です。
最も処理が高速で、画面がアクティブでなくとも動作します。
ただし、互換性が最も低く、ショートカットキーや特殊キーの入力が出来ません。
Chromium API
Chromiumベースのブラウザーで利用できるメソッドです。
現在このメソッドを指定できるアプリ/Webは、ブラウザーのGoogleChromeとEdgeの2つですね。
シミュレートよりは若干速度が劣るものの、ショートカットキーや特殊キーを入力出来るというメリットがあります。
ウィンドウメッセージ
アプリケーションの操作に強い制御です。
[ハードウェアイベント]とは違い、アプリがアクティブでなくとも操作できます。
汎用性と処理速度いずれも、[ハードウェアイベント]と[シミュレート]の中間と考えればいいでしょうね。
4つのモードを整理
それぞれのモードの違いを表にまとめました。
ハードウェア | シミュレート | Chromium | ウィンドウ | |
処理速度 | 低速 | 高速 | 高速 | 中速 |
バックグラウンド実行 | 不可 | 可能 | 可能 | 可能 |
対応範囲 | 汎用性高 | 汎用性低 | Edge/Chrome | 汎用性中 |
[文字を入力]アクション 特殊キー入力 |
可能 | 不可 | 可能(※) | 可能(※) |
※[文字を入力]アクションで、特殊キーが含まれる場合、入力モードは"ハードウェアイベント"として実行されます。
実行を検証
アクティビティ実行後に、正しくアプリ/Webが反応したかを検証します。
アプリ/Webによっては、アクティビティの実行に1回だけでは反応しきれないことがあります。
そのような場合に、有効にしてみるといいでしょう。
ドロップダウンから"VerifyExecutionOptions"を指定すると、更に項目が展開されます。
画面上で検証ターゲットを指定
アクティビティが実行された後に、変化する対象(画面やテキストなど)を、検証ターゲットとして指定します。
"変化する"とは、例えば対象が"表示される"、"対象が消滅する"、などですが、[要素の次の動作を検証]で指定することになります。
検証ターゲットを指定する方法は、以下のとおり。
以下手順は、[キーボードショートカット]アクションを使ってExcelで"Ctrl+1"を入力し、書式設定画面が表示されたかを検証する設定のサンプルです。
カーソルの動きの種類(ハードウェアイベント)
[入力モード]が"ハードウェアイベント"である場合に適用されるオプションです。
既定値は"Instant"です。
Instant…カーソルが、対象(UI要素)までジャンプします。
Smooth…カーソルが滑らかに移動します。
タイムアウト
検証ターゲットが、期待する変化を起こすまで待機する時間です。
既定値は10秒です。
タイムアウトの時間までに、検証ターゲットが変化しない場合はリトライします。
この場合、[リトライ]をチェックON(True)に指定しておく必要があります。
リトライ
チェックON(True)にすると、検証ターゲットが変化していない場合に、アクティビティを再実行します。
要素の次の動作を検証
動作の種類を、以下の4つから選択します。
- 出現
- 消滅
- テキストの変化
- 表示の変化
タイムアウト
アクティビティが実行されるまで、待機する時間です。
もし、[実行を検証]を指定している場合は、検証を実行に指定した結果になるまで待機する時間となります。
既定値は30秒です。
▼をクリックして1秒,3秒,5秒の中から選択できるようになっていますが、直接入力しることで、より細かな時間を指定できます。
ところで、プロパティの[実行を検証]の中にも[タイムアウト]がありますよね。どう違うのでしょうか。
便宜上、[実行を検証]内のタイムアウトを検証タイムアウト、こちらのタイムアウトを共通タイムアウトと呼ぶことにしましょう。
既定値では、検証タイムアウトが10秒、共通タイムアウトが30秒でしたね。
この設定で、検証結果がNGの場合、アクティビティのアクションを3度実行します。
もちろん、途中で検証結果がOKだった場合は、タイムアウトを待たずに次のアクティビティへ処理が移ります。
まとめ
こちらのアクティビティは、アプリ/Webを制御する際に必ずと言っていいほど使うものばかりです。
基本的な使い方が分かったら、より動作を安定させるためにもプロパティの項目を理解するといいでしょうね。
まとめます。
まとめ
- [文字を入力]の使い方次第で、アクティビティの数を少なくできる。
- [項目を選択]では、複数の項目が指定できない。
- [入力モード]を使い分けることで、より安定した自動化になる。
この記事で、何か1つでも新しい発見が得られたのなら、僕もうれしいです。