【第12回】ロータス博士のWinActor塾~ウィンドウ識別
ウィンドウ識別と識別ルール
WinActorは処理対象の画面を「ウィンドウ識別ルール」に従って判別します。
そして、そのルールは「ウィンドウ識別ルール」ウィンドウで管理します。
このルールが整理されていなければ正しくウィンドウが見つけられません。
いかに的確なルールを設定できるかで、シナリオの安定性は変わってくる。
フローチャート画面の「ウィンドウ識別ルール」をみてみよう!
まずは恒例のアイコン説明からじゃな。
ウィンドウ識別ルールのアイコン説明
フローチャート画面の「ウィンドウ識別ルール」のアイコンをクリックします。
ターゲット選択
記録対象指定と同様の操作方法で、ウィンドウ識別ルールを追加できます。
- 「ターゲット選択」をクリックします。
- 操作対象画面(ウィンドウ)をクリックします。
- 下記のウィンドウ識別ルールが設定されます。
ノード参照
ウィンドウ識別名ツリーでルールを選択すると
フローチャート上でそのルールが適用されているノードが選択状態(グレー表示)となります。
未使用ウィンドウ識別ルール削除
ウィンドウ識別名ツリーで、配下に1つもノードが存在しないウィンドウ識別ルールを全て削除します。
つまりシナリオ内で一度も使われていないルールがきれいに削除されるということじゃな。
シナリオ完成後に一度押すことをオススメするぞ。
指定ウィンドウ識別ルール削除
選択されているウィンドウ識別ルールを削除します。
ルール編集でウィンドウ識別エラーを対処する
シナリオを作成中に「ウィンドウ識別ルール」をのぞくと、同じウィンドウを操作していたつもりでも
以下のように識別名が複数設定されていたという事はないかな?
本当に…同じウィンドウ状態だったのかのう?
次の例は、ウィンドウ識別ルールがいつの間にか3つに分かれてしまったパターンじゃ。
- 「乗換案内、時刻表、運行情報-Yahoo!路線情報-InternetExplorer」
- 「乗換案内、時刻表、運行情報-Yahoo!路線情報-InternetExplorer_1」
- 「乗換案内、時刻表、運行情報-Yahoo!路線情報-InternetExplorer_2」
青く選択されている部分に注目じゃ。
それぞれのウィンドウサイズが異なっていることがわかるじゃろう。
このようにどれかひとつでも識別情報が違っているとルールは分かれてしまうのじゃ。
ウィンドウサイズの「指定しない」というのは?
まぁまぁ、焦るでない。識別方式についてはこのあと説明しよう。
まずは枝番が分かれてしまう仕組みを理解するのじゃ。
シナリオを作っているとどうしてもここで躓くんですよね…
最初はうまく動いたのに、2回目で止まっちゃったり
うむ、確かにここは慎重な設定が求められるところじゃからな。
そういうときはプロに相談するのもひとつの手じゃぞ!
一人でシナリオを作っていると、エラーを起こしてしまったときにどうしていいかわからない
なんていう話も少なくないからのう。
カチシステムプロダクツが業務効率化をサポート
手間のかかる事務作業…ロボットで解決しませんか?
- 書類の転記
- データ抽出
- 情報管理
製品を試すにはこちらから
こうしてごちゃついてしまったルールの整理整頓について教えよう。
同じウィンドウに対するルールで枝番がついてしまったときは、識別方式を確認してみましょう。
取り込んだ情報が異なっている場合にルールが分かれる、ということでしたが
識別方式が「指定しない」となっている項目については、判別に使用されないため
まとめてしまっても問題ありません。
ウィンドウ識別ルールに一致していないと、以下のようなエラーが表示されます。
このようなときは、設定したルールを緩和してみよう。
一気にルールを緩和してしまうと、意図しないウィンドウを拾ってしまう可能性がある。
少しずつ緩和して試していこう。
まずは、これを試します。
「識別方式」のプルダウンより、条件に合う文字列を設定します。
これでもダメなら…次!
「ウィンドウタイトル」の「識別方式」と「文字列」を変更する
- 文字列「乗換案内、時刻表、運行情報-Yahoo!路線情報-InternetExplorer」を短くする
- 識別方式を「を含む」に変更する
このようにすると、タイトルに”乗換案内”が含まれるウィンドウであれば拾ってくれるようになりますね。
でもこれでもダメ…というときもあります。最後はこれ!
ルールでウィンドウタイトルが被った際には「ウィンドウクラス名」「プロセス名」の項目で判別されます。
この項目を常に「指定しない」にしてしまうと、意図しないウィンドウを操作してしまう可能性があるため、
タイトルを緩和しただけでは拾えない場合にのみ変更するようにしましょう。
その他のノードによる調整
「対象のアクティブ化に失敗しました。」
シナリオ製作者は、上記のようなエラーメッセージに見覚えがあるでしょう。
指定のウィンドウを操作するシナリオで目にすることがあります。
タイミングによってエラーになったり、すんなり進んだり…といったケースでも
このようなメッセージが表示されます。
この場合は、処理速度や回線速度に注目してみましょう。
重くて描画に時間がかかる画面や、ページの表示が遅いwebサイトなどを操作するシナリオで、
ウィンドウが表示される前にウィンドウを探しにいってしまう作りになっていませんか?
ここでは、ウィンドウ操作時のエラー対処に役立つノードを紹介します。
同じ画面での処理を何度も繰り返していると、ウィンドウ識別名のキャッシュがたまっていきます。
キャッシュが悪さをしている場合もあるため、こちらのノードをシナリオの先頭に入れると改善される可能性があります。
これで改善されることも多い。
特にノードの設定はないので置くだけでOKじゃ!
シナリオ実行を待つライブラリです。
このノードに差し掛かると、指定された時間が過ぎるまでシナリオは先に進みません。
待機時間、または時刻を指定して待機します。
画面が表示されるまで待つ、画面が操作可能になるまで待つ、画面が閉じるまで待つなど
ウィンドウの操作をしたいときに必要な項目が揃った使い勝手の良いノードです。
①「取得結果」に変数を設定します。
画面の変化が期待通りの結果になったかを判別するために使用します。
②「ターゲット選択」でウィンドウを取得します。
もしくは既に作ってあるウィンドウ識別ルールを指定して状態を取得したい対象を決定します。
③・④「画面の変化」プルダウンより、状態を選択します。
⑤「タイムアウト」の待機時間を指定します。
※設定できるタイムアウト時間は、最大で360秒までです
360秒以上処理を待ちたい時は…
そのときは繰り返しを入れるか、ある程度待機時間がわかっていれば
指定時間待機と組み合わせるのもよいぞ。
ちなみにじゃが、実はWinActorは代理店の乗り換えも可能なのじゃ!
既にWinActorを使用している方も、気になったら是非わしらのサービスをチェックして欲しい!
お得が満載じゃぞ!
関連記事こちらの記事も合わせてどうぞ。
2024.11.05
【第105回】ロータス博士のWinActor塾~新しい画像マッチング画面
2024.09.27
【第104回】ロータス博士のWinActor塾~ガイド利用シナリオ(作成編)
2024.09.10