監視ルール一覧の使い方を補足しておきましょうかね。
監視ルール一覧は、WinActorがどのタイミングで他ウィンドウの存在を
チェックしているかをすこし意識しないと空振りさせてしまいがちです。
監視ルール一覧の設定は、アクションとアクションの合間でチェックが働きます。
アクションが青くなっている状態、何かしらの処理が動いている最中に
裏で対象の画面がでたからといって割り込みで処理を中断してくれる訳ではありません。
例で見ていきましょう。
ボタン押したらアラートがでるだけのボタンを用意してっと。
ボタン押した瞬間アラート画面がでます。
[表示] - [監視ルール一覧]でサブウィンドウ出して「監視ルール追加」っと。
アラートをウィンドウ識別で選択して、「例外を発生させる」
例外の名前は「例外のテスト」でいいや。
今回は例外にしたから例外処理グループ使って拾います。
次は、例外処理グループのプロパティを開いてちゃんと「例外のテスト」を拾う様にしましょう。
で、ここからがやりがちなヤツ。
スンッて例外処理グループ抜けちゃうから例外拾いません。
クリックしたらすぐ例外処理グループ抜けちゃう。
こうしたら、ちゃんと例外拾ってアラート閉じますよ。
もちろんこんなでもいいけど。この辺は好みですかねぇ?
あと、例外とサブルーチン、どっちで拾ったらいいの?っていう話に
ケースバイケースだよって言うのも不親切だから、すこしだけ補足しておきましょう。
用途が限定されているなら例外で拾うべきじゃないかな?
環境依存問題で強制的に無視したいならサブルーチンを使うべき。
監視ルール一覧は、シナリオ起動中は常にチェックされてしまう内容ですから。
用途が限定的なら例外発生させて、その場でキャッチアップすりゃいい。
そりゃ当然の話ですよね。
ただ、稀にありますよね。
セキュリティの厳しい社内LANなんかで定期的にPROXYの認証画面が出てしまって
いつ出るかわからないけど、でたら画面遷移が止まってしまうとか。
そゆときはやっぱり、どこで発生してもヒョイッとサブルーチン実行して
元の処理に戻ってくれるサブルーチン実行の方が便利な訳です。
例外処理グループだと、例外の分岐に吸い込まれると
中断された方の正常系の処理の残り部分はスキップされますから。
その辺を勘定して、どちらで拾うか検討してみてください。
※ 2019/07/24 追記 ※
このようなシナリオ配置上のミスで動かないパターン以外にも、監視ルールで指定したウィンドウがポップしても拾わなくなってしまうパターンがあるみたいです。
監視ルールでも初回のウィンドウ出現に関しては高確率で検知して処理を遷移してくれるのですが、同じウィンドウが何度も出現するようなケースでは2回目以降の検知が出来なるなるケースがあるようです。