自習用コンテンツ その9(https://automate.sct.co.jp/knowledge/12059/)の内容は如何でしたでしょうか?
簡単に出来てしまった方も、難しかった方もいたかと思います。
下記では、解説を書いていきます。
(解答例のコードは、ページ最下部に書いています。)
■観点
今回のコンテンツでは、「キーボードでの各種オブジェクト操作」および「入力カーソル位置の制御」を観点としました。
■1. ブラウザの起動
「実行 - 実行」アクションで、ブラウザのプログラムの実体を指定し、かつ後ろにパラメーターとしてURLを指定します。
「"C:\Program Files\Mozilla Firefox\firefox.exe" ページのURL」のように指定します。(Firefoxの場合)
<AMRUN FILE=""C:\Program Files\Mozilla Firefox\firefox.exe" https://www-1.sct.co.jp/amdemo/order1.php" />
■2. ブラウザウィンドウの待機
「Wait - ウィンドウ」アクションを使用し、目的のウィンドウが表示されるまで待機します。
また、対象のウィンドウが最前面に表示されている必要があるため、「該当するウィンドウをフォーカスする」にチェックを入れます。
(下記、Firefoxの例となります)
<AMWAIT ACTIVITY="window" WINDOWTITLE="AutoMate Demo — Mozilla Firefox" FOCUSWINDOW="YES" />
■3. 商品コード・受注単価・数量の入力
ページが開かれた初期状態から、該当のウィンドウがフォーカスされている状態で「TAB」キーを一度押すと、「商品コード」欄にカーソルが移動します。
同様に、TABキーを押すと受注単価→数量の順にカーソルが移動します。
これを利用して、それぞれ値を入力します。
(以降の操作も一続きで記入可能ですが、説明を分けるため本解説では全て1アクションでは記述しないものとします。)
<AMINPUT KEYSTROKES="{TAB}990001{TAB}4000{TAB}3" />
■4. プルダウンリストの選択
■3の状態から「TAB」キーを1回押下し、「倉庫」のプルダウンリストまで移動します。
その後、矢印キーの「↓」を2回押すことで、「大阪」が選択されます。
(大阪、はリストの一番下に存在する為、2回以上押下する分には問題ありません)
<AMINPUT KEYSTROKES="{TAB}{DOWN 2}" />
■5. ラジオボタンの選択
■4の状態から「TAB」キーを1回押下し、「配送区分」のラジオボタンまで移動します。
「TAB」キーではラジオボタンを変更できず次のチェックボックスにカーソルが行ってしまう一方で、矢印キーの左右であればラジオボタンの選択が可能です。
「→」キーを一度押下し、配送区分を「緊急」に変更します。
<AMINPUT KEYSTROKES="{TAB}{RIGHT}" />
■6. チェックボックスにチェックを入れる
■5の状態から「TAB」キーを1回押下し、「保留」のラジオボタンまで移動します。
チェックボックスはSPACEキーを押下することで、チェックの入/切を切り替えることが可能です。
カーソル移動後、スペースキーを1回押下し、チェックを入れます。
<AMINPUT KEYSTROKES="{TAB}{SPACE}" />
■7. 備考欄の入力
■6の状態から「TAB」キーを1回押下し、「備考」のテキストボックスまでカーソル移動します。
その後、目的の文字列を入力します。
※アプリケーションによっては、全角/半角が入力中に混じるとMicrosoft IMEにより半角文字が全角入力になりカーソルがずれる場合があります。
その場合は、文字列をキーストロークではなくコピペで貼り付ける等で代替する必要があります。
<AMINPUT KEYSTROKES="{TAB}テスト AutoMateデータ" />
■8. 確定処理
■7の状態から「TAB」キーを1回押下し、「備考」のテキストボックスまでカーソル移動します。
その後、「Enter」キーで「確定」ボタンを押下します。
この際、画面遷移を伴うため適切な時間だけWaitを入れます。
(サンプルでは2秒としています。次の画面ではウィンドウ名が変わらない為、時間でのWaitとします。)
<AMINPUT KEYSTROKES="{TAB}{ENTER}" />
<AMWAIT SCALAR="2" />
■9. 確認(2回目)
ページ遷移後、TABキーを1回押下すると、「確認」のボタンにカーソルが移動します。
その後、「Enter」キーで「確定」ボタンを押下します。
この際、画面遷移を伴うため適切な時間だけWaitを入れます。
(この確定処理は少々時間を要する為、5秒としています)
<AMINPUT KEYSTROKES="{TAB}{ENTER}" />
<AMWAIT SCALAR="5" />
■10. 画面コピーの取得
「画像 - 画面のキャプチャー」アクションを使用し、処理後の画面コピーを取得します。
なお、取得する対象は画面全体ではなく、当該ブラウザウィンドウだけでよいので、「アクティブ ウィンドウ」を選択します。
<AMIMAGE ACTIVITY="capture_screen" FILE="%GetDesktopDirectory()%\発注データ.png" CAPTURETYPE="active_window" />
■11. ウィンドウを閉じる
「ウィンドウ - 閉じる」アクションを使用し、AutoMateのデモページを閉じます。
※キーストロークの「{ALT}{F4}」でも問題ありません。
<AMWINDOW ACTIVITY="close" WINDOWTITLE="AutoMate Demo — Mozilla Firefox" />
今回定義する処理は以上になります。
(処理構築例:クリックして展開してください。)
<!--FirefoxでAutoMateのデモページを起動-->
<AMRUN FILE=""C:\Program Files\Mozilla Firefox\firefox.exe" https://www-1.sct.co.jp/amdemo/order1.php" />
<!--ページ表示まで待機-->
<AMWAIT ACTIVITY="window" WINDOWTITLE="AutoMate Demo — Mozilla Firefox" FOCUSWINDOW="YES" />
<!--商品コード・単価・数量を入力-->
<AMINPUT KEYSTROKES="{TAB}990001{TAB}4000{TAB}3" />
<!--倉庫は「大阪」を選択-->
<AMINPUT KEYSTROKES="{TAB}{DOWN 2}" />
<!--ラジオボタンは「緊急」を選択-->
<AMINPUT KEYSTROKES="{TAB}{RIGHT}" />
<!--「保留」にチェックを入れる-->
<AMINPUT KEYSTROKES="{TAB}{SPACE}" />
<!--備考欄の入力-->
<AMINPUT KEYSTROKES="{TAB}テスト AutoMateデータ" />
<!--確認ボタンを押下 → 画面遷移待機-->
<AMINPUT KEYSTROKES="{TAB}{ENTER}" />
<AMWAIT SCALAR="2" />
<!--確認ボタンを押下 → 画面遷移待機-->
<AMINPUT KEYSTROKES="{TAB}{ENTER}" />
<AMWAIT SCALAR="5" />
<!--スクリーンショットを取得-->
<AMIMAGE ACTIVITY="capture_screen" FILE="%GetDesktopDirectory()%\発注データ.png" CAPTURETYPE="active_window" />
<!--ブラウザを閉じる-->
<AMWINDOW ACTIVITY="close" WINDOWTITLE="AutoMate Demo — Mozilla Firefox" />
(別解1: 受注入力ページの操作を1アクションで実行した場合)
<!--FirefoxでAutoMateのデモページを起動-->
<AMRUN FILE=""C:\Program Files\Mozilla Firefox\firefox.exe" https://www-1.sct.co.jp/amdemo/order1.php" />
<!--ページ表示まで待機-->
<AMWAIT ACTIVITY="window" WINDOWTITLE="AutoMate Demo — Mozilla Firefox" FOCUSWINDOW="YES" />
<!--データをすべて入力-->
<AMINPUT KEYSTROKES="{TAB}990001{TAB}4000{TAB}3{TAB}{DOWN 2}{TAB}{RIGHT}{TAB}{SPACE}{TAB}テスト AutoMateデータ{TAB}{ENTER}" />
<AMWAIT SCALAR="2" />
<!--確認ボタンを押下 → 画面遷移待機-->
<AMINPUT KEYSTROKES="{TAB}{ENTER}" />
<AMWAIT SCALAR="5" />
<!--スクリーンショットを取得-->
<AMIMAGE ACTIVITY="capture_screen" FILE="%GetDesktopDirectory()%\発注データ.png" CAPTURETYPE="active_window" />
<!--ブラウザを閉じる-->
<AMWINDOW ACTIVITY="close" WINDOWTITLE="AutoMate Demo — Mozilla Firefox" />
(別解2: 別解1 + Google Chromeの場合)
<!--FirefoxでAutoMateのデモページを起動-->
<AMRUN FILE=""C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" https://www-1.sct.co.jp/amdemo/order1.php" />
<!--ページ表示まで待機-->
<AMWAIT ACTIVITY="window" WINDOWTITLE="*AutoMate Demo*" FOCUSWINDOW="YES" />
<!--データをすべて入力-->
<AMINPUT KEYSTROKES="{TAB}990001{TAB}4000{TAB}3{TAB}{DOWN 2}{TAB}{RIGHT}{TAB}{SPACE}{TAB}テスト AutoMateデータ{TAB}{ENTER}" />
<AMWAIT SCALAR="2" />
<!--確認ボタンを押下 → 画面遷移待機-->
<AMINPUT KEYSTROKES="{TAB}{ENTER}" />
<AMWAIT SCALAR="5" />
<!--スクリーンショットを取得-->
<AMIMAGE ACTIVITY="capture_screen" FILE="%GetDesktopDirectory()%\発注データ.png" CAPTURETYPE="active_window" />
<!--ブラウザを閉じる-->
<AMWINDOW ACTIVITY="close" WINDOWTITLE="*AutoMate Demo*" />