【第4回】ロータス師匠のWinActorシナリオ道場~WinActor塾更新チェック 前編~
2021.06.04
今回はRoTASホームページの大人気コラム「WinActor塾」の更新をチェックするシナリオに挑戦じゃ!
目次
1.シナリオ概要
このシナリオは、WinActor塾の更新日を記録しているExcelファイルとHP上の日付の比較を行い、
更新されていたらExcelファイルに追記するという流れで処理を行います。
①Excelファイルから最終更新日を取得
②RoTASのHPを開き、WinActor塾のページへ移動
③WinActor塾の最新の記事の更新日を取得
④Excel上の情報と比較して更新されているかチェックし、
更新されていたらExcelに日付とブログタイトルを転記
今回の記事は①から③までの処理を勉強するぞ!
2.このシナリオを通して学べる操作
ブラウザ起動
XPath
画像マッチング
Excel転記
分岐
etc…
WinActor塾で習った項目ばかりですね!がんばるぞー!
4.シナリオ作成
①Excelファイルから最終更新日を取得
まず、Excelファイルを開いて最終更新日を取得します。
ライブラリのExcel関連から、以下の3つを使用します。
【ライブラリ】>18_Excel関連>01_ファイル操作
・Excel開く(前面化)
【ライブラリ】>18_Excel関連>03_行列操作
・最終行取得(その3)
【ライブラリ】>18_Excel関連
・Excel操作(値の取得2)
プロパティ画面で詳細を設定していきます。
①Excel開く(前面化)
ファイル名に『Exl_WinActor塾一覧』という変数名を設定します。
この変数にはJukuIchiran.xlsxのファイルパスが入ります。
シート名はシートが1枚しか存在しないので、空欄でOKです。
②Excel操作(最終行取得その3)
ファイル名・シート名は先ほどと同じように設定します。
検索列は日付がA列に記載されているのでA列を指定します。
最終行の値を格納する変数名を『Exl_最終行』に設定します。
Excel操作(最終行取得 その3)は指定した列の2行目から見ていき、
最初に空白になった行数から1を引いた値を最終行として設定するぞ。
上の図では、最初に空白になっているのが41行目じゃから、
『Exl_最終行』の変数には41-1をした40という値が格納されるのじゃ!
上記の図の場合、
『Exl_最終行』には 40
『Exl_取得日付』には 2021/5/19 が格納されます。
ブログの回数によって最終行や日付の中身も変わるので、変数で扱うのが便利ですね!
②ブラウザを起動し、WinActor塾一覧ページへ移動
以下の4つのライブラリを利用します。
【ライブラリ】23_ブラウザ関連
・ブラウザ起動
・ページ表示
【ライブラリ】11_ウィンドウ関連
・ウィンドウの表示変更
【ライブラリ】04_自動記録アクション
・エミュレーション
プロパティ画面で詳細を設定します。
①ブラウザ起動
ブラウザ名には『HP_RoTASホームページ』という変数を作成します。
ブラウザの種類は、今回はchromeを選択します。
ブラウザ名は先ほど作った変数を設定します。
RoTASホームページのURLを入力します。
※https://www.knet-bpr.com/※
開いたページを最大表示に変更します。
表示状態は最大化を選択し、
ウィンドウ識別名はターゲット選択ボタンから選択します。
④エミュレーション(Ctrl + 0)
Ctrlキーと0で対象のブラウザの拡大率を100%にすることができます。
この後の画像マッチングの処理で安定性を上げるために使用します。
ウィンドウ識別名はプルダウンから選ぶことも可能です。
Ctrlキーと0キーを押下するように設定します。
ブラウザ操作(ズームを100パーセントに変更) というライブラリを利用することも可能です。
以下のライブラリとノードを利用します。
【ライブラリ】23_ブラウザ関連
・クリック
【ノード】>アクション
・ウィンドウ状態待機
①クリック
トップページの学習コラムから、WinActor塾のページへ遷移するようにクリックします。
ブラウザ名は最初に設定した『HP_RoTASホームページ』を設定します。
XPathには、以下の赤枠部分のXPathを入力しましょう。
XPathの取得方法については、【第36回】WinActor塾~XPathで復習するのじゃ!
②ウィンドウ状態待機
処理を安定させるために、ここで一度待機を入れます。
取得結果は『状態取得』という変数を設定します。
ウィンドウ識別名は先ほどと同じように設定します。
画面の変化は「画面が操作可能になるまで」を選択します。
③WinActor塾の最新記事の日付を取得
WinActor塾のページへ飛んだら、最新記事の日付を取得します。
利用するノードとライブラリはこちらです。
【ノード】>アクション
・画像マッチング
【ライブラリ】>04_自動記録アクション
・エミュレーション
【ノード】>アクション
・クリップボード
【ライブラリ】>07_文字列操作>01_変換・整形
・トリミング
①画像マッチング
画像の取り込みと、アクションの設定をします。
マッチング範囲とカーソル位置を図のように設定しましょう。
アクションは左ボタントリプルクリックに設定して、日付が選択されるようにします。
WinActor塾の文字列をマッチング範囲に指定することで、ページ遷移が正しくおこなわれているか判定もできるのじゃ。
XPathでクリックしているからミスはまず起きないが、ここで念のための確認ができるぞ!
そしてカーソル位置を日付部分に設定しよう。
師匠!前々回の塾で習いました。
博士にひっかけられたのでもう完璧です!
変化しない「WinActor塾」をマッチング対象にしてクリック位置だけを変えるんでしたよね。
その通り。素晴らしい!
まだ記事を読んでいない方はこちらからどうぞじゃ。
②エミュレーション(Ctrl + C)
選択した日付をコピーしてクリップボードに一時的に保存します。
設定方法は先ほどのCtrl + 0 と同じです。
③クリップボード
先ほどクリップボードに保存した日付を『HP_最新記事日付』という変数に格納します。
④トリミング
日付を選択してコピーしているだけなのに、なぜトリミングが必要なのですか?
うむ。これは日付をトリプルクリックで選択しているからなのじゃ。
下の図では日付の部分だけ選択されているように見えるが、
実は改行コードが入っているところまでが選択されているのじゃ。
開発者ツールを開いて確認するぞ。F12キーを押すのじゃ。
本当だ!見えていないだけで実はここまでコピーされていたんですね!
その通り。実際このままコピーして貼り付けるとこんな感じになってしまうのじゃ。
これがトリミングが必要な理由じゃ。わかったかの?
押忍!
では実際にプロパティ画面を設定しよう。
『HP_最新記事日付』に入っている日付の空白を取り除いたあと、もう一度『HP_最新記事日付』に格納します。
分かりにくくなってしまう場合は、新しく変数を作ることも可能です。
オプションで「改行を除去する」を選択することで、余計な空白を取り除くことができます。
ここまでのシナリオはこのようになっています。
今回はここまでじゃ。次回は日付を比べて分岐以降の処理を作るぞ。
ちょっと細かい部分の説明をしたが、処理の流れ自体はシンプルじゃから、しっかり復習するように!
塾の記事もチェックすることで、より理解が深まるぞ!
押忍!
次回の更新をお楽しみに!
関連記事こちらの記事も合わせてどうぞ。
2021.08.20
【第15回】ロータス師匠のWinActorシナリオ道場~夏合宿特別版 総合問題編~
2021.08.19
【第14回】ロータス師匠のWinActorシナリオ道場~夏合宿特別版 例外処理編~
2021.08.18