シナリオ作成チャレンジ①_解説編_ユーザーフォーラムから事例集ダウンロード
こんにちは、NTTデータ WinActor技術支援チームです。
いつもユーザーフォーラムをご利用いただき、ありがとうございます。
今回は先週投稿したシナリオ作成のお題の作り方を解説してみたいと思います。
お題の投稿はコチラです。
今回の解説で紹介する方法は一例なので、もっと違う方法もあるかもしれません。
ほかにこんな作り方があるよ、というアイデアがありましたらこの投稿の回答で教えてくださいね。
■IEの場合
全体ではこのようになりました。上から順にポイントを解説していきたいと思います。
①事例集ページを開く
ユーザーフォーラムに手動でログインしトップ画面を表示させた後、エミュレーションでCtrl+0を押し、画面の表示倍率を100%にしています。
これをやっておくと、画像マッチングを使うときに表示倍率の違いでエラーになることが避けられます。
そのあと、事例集のボタンをクリックしますが、トップ画面からだと「クリック(IE)」ではボタンクリックに時間がかかったり不安定だったりします。
いろいろ試した結果、クリック後に遷移する画面のURLが毎回同じなのでクリックではなく「IE操作(URL指定)」で事例集ページを表示するようにしました。
②「事例を知る」をクリック
「クリック(IE)」での処理が安定していたため、自動記録で取得しています。
③キーワードを入れて検索
検索ボックスにキーワードを入れて検索しています。
検索中に処理が先走ってエラーになることがあったので、「指定時間待機」と「IE操作(読込完了待ち)」を入れ、検索完了まで確実に待てるようにしています。
④「ダウンロード」をクリック
「ダウンロード」ボタンをクリックするところは自動記録アクションで記録できなかったため、
「IE操作(Debug全タグ情報詳細版)」で画面の情報を取得し、ダウンロードボタンにClassがついていたため、NTT-AT社のスイートライブラリにある
「IE操作(指定CLASSをクリック)」を使用しています。
⑤スクロール、チェック
利用規約のスクロールは画像マッチングでクリックしてカーソルをおいた後、
エミュレーションでEndボタンを押下して最後までスクロールし、
同意のチェックと「開始」ボタンのクリックを 画像マッチングで行っています。
⑥名前を付けて保存
IEはダウンロード時に通知バーが表示されるため、そこの操作を追加しています。
通知バーの操作はエミュレーションでの実施がメジャーかと思いますが、今回はライブラリのご紹介もかねて、
データ製ライブラリのIE制御ライブラリに含まれる「IE_通知バー操作」を使用しています。
データ製のIE制御ライブラリはマーケットプレイス(https://nttdata-mp.com/product.php?id=72)
からお申込みいただくと無料でご利用いただけますので、興味がありましたら是非申し込んでみてください。
(お申し込みには会員登録が必要です。)
「IE_通知バー操作」ライブラリのプロパティ画面はこんな感じです。
通知バー操作をエミュレーションで実施する場合はこんな感じですね。
そのあとは、「文字列取得(WIN32)」で元のファイル名を取得した後、検索キーワードやシナリオファイルパスを利用してダウンロードファイルパスを作成し、
「名前を付けて保存画面ファイル名入力」で「名前を付けて保存」画面にファイルパスを設定しています。
全体_追加処理あり版
検索キーワードをExcelファイルから取得する場合は、以下のような流れになります。
1,「シナリオフォルダのファイルパス」などで検索キーワードリストのファイルパスを作る
2,「Excel開く(前面化)」で検索キーワードリストを開く
3,「Excel操作(最終行取得 その~)」で最終行を取得
4,キーワードを取得しては③~⑥の処理を最終行まで繰り返す
■Chromeの場合
全体ではこのようになりました。上から順にポイントを解説していきたいと思います。
①事例集ページを開く
大枠はIEシナリオと同じで、ユーザーフォーラムを開いた後手動でログインし、ウィンドウを最大化&表示倍率を100%にしたあと、
「クリック(Chrome)」で事例集ページに遷移しています。
IEは事例集に遷移するボタンを特定する情報(tagindex)が動的に変わってしまうため「クリック(IE)」ではなく「IE操作(URL指定)」で遷移していましたが、
ブラウザ関連ライブラリで使用するXpath は変わらないようで動作が安定していたため、自動記録で生成したノードをそのまま使用しています。
②「事例を知る」をクリック
自動記録で生成した「クリック(Chrome)」での処理が安定しているため、そのままにしています。
③キーワードを入れて検索
自動記録で生成した「文字列設定(Chrome)」と「クリック(Chrome)」での処理が安定しているため、そのままにしています。
④「ダウンロード」をクリック
自動記録では記録できず、代替できそうなライブラリもなかったため、画像マッチングを使用しています。
⑤スクロール、チェック
IE側と同じように、利用規約のスクロールは画像マッチングでクリックしてカーソルをおいた後、
エミュレーションでEndボタンを押下して最後までスクロールし、
同意のチェックと「開始」ボタンのクリックを 画像マッチングで行っています。
IE側との違いとして、利用規約画面を表示したままだと繰り返し処理をした場合にエラーになったため
「開始」ボタンをクリックしてから3秒待機した後、利用規約画面の右上の✕ボタンを画像マッチングでクリックして閉じる処理が追加されています。
(IEでは利用規約画面が表示されたまま次の条件検索しても動作したため、利用規約画面を閉じる処理は入れていませんでした。)
全体_追加処理あり版
検索キーワードをExcelファイルから取得する場合は、以下のような流れになります。
(1~3はIEと同じです)
1, 「シナリオフォルダのファイルパス」などで検索キーワードリストのファイルパスを作る
2, 「Excel開く(前面化)」で検索キーワードリストを開く
3, 「Excel操作(最終行取得 その~)」で最終行を取得
4, 「コマンド実行」でダウンロードフォルダパスを作成する
5, 「ファイル削除」でChromeから事例集をダウンロードする前にダウンロードフォルダ配下のファイルをすべて削除する。
6, キーワードを取得しては③~⑤の処理を行う
7, ダウンロードフォルダ内のファイルパスを取得する。
8,「ファイルパスのフォルダパスとファイル名を取得」のプチライブラリでファイル名のみ取り出す。
9, 検索キーワードやシナリオファイルパスを利用してパスを作り、「ファイル移動」でダウンロードフォルダからシナリオフォルダにファイル移動するとともに、リネームする
10, 3~9の手順をキーワードリストの最終行まで繰り返す
ちなみに、「コマンド実行」でダウンロードフォルダのパスを取得する処理はこのように設定しています。
おわりに
最後までお読みいただきありがとうございました。
今回の解説で紹介する方法は一例なので、もっと違う方法もあるかもしれません。
ほかにこんな作り方があるよ、というアイデアがありましたら、ぜひこの投稿の回答でシェアしていただければ嬉しいです。
この記事が面白かった、参考になったと思っていただけたら、ぜひ「いいね!」ボタンを押してください。
コメントもお待ちしています。
それでは、また次回!
※「いいね」はユーザーフォーラムに会員登録済みの方がログインしているときに押下できます。
ユーザーフォーラムの会員登録はメールアドレスがあればどなたでも無料で登録できます。
会員登録すると、質問への回答が見れたり、共有シナリオや事例集のダウンロードといった特典があります!