【課題】
以下の内容を満たすタスクを作成してみましょう。
■1. 事前準備
本タスクでは、Webブラウザを利用します。インターネット接続環境が必要です。
なお、他のアプリケーションは使用しません。
■2. 内容(クリックして展開してください)
--------------------------------------------------------------------------------------------------
以下のWebページに関する処理を行います。
https://www-1.sct.co.jp/amdemo/table-test.html
※Webページの表における「組」「番号」の値は、「0 ~ 500」の範囲でページを開く・更新する度に変化します。
ページを開いた際に、「組」の値が「301 ~ 400」の範囲、かつ「番号」が「100未満」(99まで、100は含まない)の場合に、その列にあるチェックボックスにチェックをつけます。
該当するものに全てチェックをつけ終わった後、チェックしたものがあればその件数を、無ければ「該当なし」とダイアログに出してタスクを終了します。
※ブラウザを閉じて終了するとチェックをつけた場所を後から確認できないため、今回の課題ではブラウザは閉じずにタスクを終了します。
--------------------------------------------------------------------------------------------------
■2. 前提
・Webページに書かれている「組」「番号」の数字は開く/更新する度に変化します。
・テーブルの行数は「50」で固定です。
・それぞれの番号は「0 ~ 500」の間で変動します。
■3. 処理を作成する上での禁則事項
・チェックする場所をあらかじめ決める(5行目を固定でチェックする)方法は禁止です。
・Webページを開いたままにして、値が実行毎に変わらないようにする方法は禁止です。
・人間の手で直接チェックをつける方法は禁止です。
・条件に該当しない行にチェックがついていたり、条件に該当する行なのにチェックがついていない場合は失敗です。
■4.ヒント
(ヒントを見る際は、クリックして展開してください。)
ヒント1
テーブルのセルを1つずつ変数に取得する方法は、実運用だと要素数が変わるなど間違えやすいです。
テーブルタグになっているので、「Webブラウザ(従来) - テーブルの抽出」アクションを使用してデータセット化すると値の取得が1回で済みます。
ヒント2
テーブルをデータセット化すると、テーブルの見出しもデータセットの要素として入ってきます。
「Loop - データセット」を使用する際は、ループの開始は2行目からで良さそうです。
ヒント3
データセットのデータには、「xxx組」「yyy番」のように、固定文字列が入っています。
これが入ったままでは数字の比較に使えないので、テキストアクションや関数等で除去する必要があります。
ヒント4
チェックボックスにチェックを入れる際、「どのチェックボックスがどのデータに該当するか」という課題があります。
今回の例では、チェックボックスのHTMLにおける「name」要素にご着目下さい。名前には法則を設けています。
ヒント5
チェックボックスの「name」要素は、1行下に行く毎に後ろの連番が「1」ずつ増えています。
ただし、データの1行目は「chkbox0」、最終行は「chkbox49」となっています。
そのため、変数を使うか計算を行う等して、現在処理中のデータセットの行と調整する必要がありそうです。
ヒント6
データセットの行が「2」の場合は同じ行のチェックボックスの「name」が「chxbox0」、データセットの行が「51」の場合は同じ行のチェックボックスの「name」が「chxbox49」になっています。
つまり、「データセットの今の行」から「2」を引いたものが、チェックボックスの「name」の連番になっていそうです。
「データセットの今の行」は「データセット名.CurrentRow」で取れます。
■5. 解説及び構築例
以下のページをご参照ください。
https://automate.sct.co.jp/knowledge/12052/