ブラウザ関連で、設定値の一覧から順番にデータを検索・更新するんだけど
システム側の値を更新した時は更新した個所のログが欲しいって場合の話。
普通にサブルーチングループ使って実装せいって話なんだけど
ブラウザ関連のライブラリのスクリプトをいじくって実験したかったので書いてみた。
1.ブラウザ関連 取得・更新・更新ログ取得
「値の取得」と「値の設定」を合体させています。
まず、値の取得を実行して、設定したい値と比較。
違ければ新しい値にフィールドを更新して、「変数名:[前の値⇒新しい値]」という文字列を更新ログに格納します。
新旧の値が同じで、操作を行わなかった場合は更新の処理は行わず更新ログに空白をセットします。
いつもの如く、スクリプト実行ステージのスクリプトタブに張り付ければすぐに使えるスクリプトです。
browserName = !ブラウザ名! xpath = !XPath! new_value = !設定する値! TEMP_VAR = $設定されていた値$ ' ブラウザ関連 値の取得 SetUmsVariable "$CLEAR_ARGUMENT", "" SetUmsVariable "$SET_ARGUMENT", "getText" SetUmsVariable "$SET_ARGUMENT", browserName SetUmsVariable "$SET_ARGUMENT", xpath SetUmsVariable "$SET_ARGUMENT", TEMP_VAR SetUmsVariable "$RUN_CLASS2" , "SpvWeb" if GetUmsVariable("$RUN_CLASS2") <> "true" then Err.Raise 1, "", "ライブラリ実行(spv_Web)に失敗しました。" end if ' 値のチェック old_value = GetUmsVariable(TEMP_VAR) If new_value <> old_value Then ' ブラウザ関連 値の設定 SetUmsVariable "$CLEAR_ARGUMENT", "" SetUmsVariable "$SET_ARGUMENT", "setText" SetUmsVariable "$SET_ARGUMENT", browserName SetUmsVariable "$SET_ARGUMENT", xpath SetUmsVariable "$SET_ARGUMENT", new_value SetUmsVariable "$RUN_CLASS2" , "SpvWeb" if GetUmsVariable("$RUN_CLASS2") <> "true" then Err.Raise 1, "", "ライブラリ実行(spv_Web)に失敗しました。" end if SetUmsVariable $更新ログ$ , "値:[" & old_value & "⇒" & new_value & "]" Else SetUmsVariable $更新ログ$ , "" End If
ふむふむ。
なんとなくだったけど、動くね。
いつも参考にさせていただいてます。
WinActorのスクリプト実行で chromeを使いxpath指定のテーブルから全行数を取得するスクリプトを作ろうと思います。
SetUmsVariable “$RUN_CLASS2” , “SpvWeb”のパラメータでできないものでしょうか ヒントなどありましたらお願いします。