ブラウザ操作を自動化[Firefoxアドオン iMacros]その3 csv読み込み、jsとの値受渡し
![ブラウザ操作を自動化[Firefoxアドオン iMacros]その3 csv読み込み、jsとの値受渡し](https://peacepopo.net/wp-content/uploads/18-1.gif)

外部ファイル(csvファイル)との連携について確認してみました。
マイドキュメント内のiMacrosファイルの中のDatesourceフォルダ内に
読み込みたいcsvファイルを保存しておきます。
(※日本語を利用するには文字コードをUTF-8にする必要があるみたいなのでご注意を)
今回は読み込むファイルは Address.csv とします。
(上記ファイルはサンプルとして最初からあります)

また、iMacroのスクリプトだけで完結してしまうと使い勝手が悪そうだったので
javascriptとの値の受け渡しも合わせてやってみました。
ファイル、フォルダ構成はこんな感じです

getcsvrow.iimのソース
SET !DATASOURCE Address.csv
SET !DATASOURCE_LINE {{actrow}}
ADD !EXTRACT {{!COL1}}
ADD !EXTRACT {{!COL2}}
ADD !EXTRACT {{!COL3}}
ADD !EXTRACT {{!COL4}}
ADD !EXTRACT {{!COL5}}
ADD !EXTRACT {{!COL6}}
ADD !EXTRACT {{!COL7}}
ADD !EXTRACT {{!COL8}}
SET !DATASOURCE Address.csv で読み込むファイルを指定
SET !DATASOURCE_LINE {{actrow}} が何行目を読み込むのか指定
ここでのactrowはjavascript側から読み込みたい行を指定してiimファイルを呼び出す形になります
ADD !EXTRACT {{!COL1}} が読み込んだ行の1項目目を javascriptに渡す処理
ADD !EXTRACT {{!COL2}} が2項目目
・
・
・
ADD !EXTRACT {{!COL2}} が8項目目
といった感じで読み込むcsvの項目数に合わせて指定をします。
javascriptのソース main.js
rowcnt=2 //読み込み開始行 1行目が項目名なので2行目から開始にしています
loopflg=true;
while (loopflg == true) {
//iimマクロに値を渡す(csv何行目を読み込むか)
iimSet("actrow", rowcnt);
//1行読み込む
iimPlay("csv_sample/getcsvrow");
//読み込んだ値を取得
var GetData1= iimGetLastExtract(1);
var GetData2= iimGetLastExtract(2);
var GetData3= iimGetLastExtract(3);
var GetData4= iimGetLastExtract(4);
var GetData5= iimGetLastExtract(5);
var GetData6= iimGetLastExtract(6);
var GetData7= iimGetLastExtract(7);
var GetData8= iimGetLastExtract(8);
if(GetData1==null){
//csvデータが終わったのでループ抜ける
break;
}else{
//csvから読み込んだ値を使って処理
//GetData1,GetData2,GetData3・・・の中に値が入ってるので
//ここに繰り返し行いたい処理を記述する
rowcnt=rowcnt+1;
}
}
iimSet(“actrow”, rowcnt); がiimマクロに値を渡す処理になります
iimPlay(“csv_sample/getcsvrow”); が getcsvrow.iimを呼び出す処理
var GetData1= iimGetLastExtract(1); がiimで読み込まれた値を受け取っている部分
という流れでjavascriptとiim間での値の受け渡しをすることが出来ました。
また、別に繰り返し処理をしたいiimファイルを作成してcsvからのデータを受け渡しをしていけば色々と可能性が広がりそうな気がします。商品一覧ページから品番で検索して編集ページに移動して項目に値をセットして登録ボタンをクリックする。
などの商品1つ1つに対して繰り返すような操作も自動化すると便利そうですねー
商品登録とかも自動化出来るかも?!って思ったけど・・・・
項目の数が大量にありそうでハードル上げるのはやめておきます。
まずは、もっとシンプルものから考えて後日報告したいと思います。
追記:
・ブラウザ操作を自動化[Firefoxアドオン iMacros]
・ブラウザ操作を自動化[Firefoxアドオン iMacros]その2
・ブラウザ操作を自動化[Firefoxアドオン iMacros]その3 csv読み込み、jsとの値受渡し
・ブラウザ操作を自動化[Firefoxアドオン iMacros]その4 RMS自動化 倉庫出し入れ



Your Message