imacros jave loop读取新的csv行?

时间:2013-02-09 20:07:45

标签: javascript firefox scripting imacros

如果我在javascript中使用此代码用于imacros

for(var i=0;i<10;i++)

并将其放在开头(我将填写10份表格)

macro +-= SET !DATASOURCE input.csv

macro +-= SET !DATASOURCE_COLUMNS 7

将每个循环,从我的

中的下一行读取

{{!COL1}} {{!COL2}} {{!COL3}} ..等

还是我必须把

{{!LOOP}}某个地方?

所以...如果我想填写表格10次,那么每个循环都会从下一个csv行读取,如果我只是使用

for(var i=0;i<10;i++)

2 个答案:

答案 0 :(得分:1)

您只能在imacros而不是列中切换这样的行。 试试这个代码示例:

    var load;
    load =  "CODE:";
    load +=  "set !extract null" + "\n"; 
    load +=  "SET !DATASOURCE input.csv" + "\n"; 
    load +=  "SET !DATASOURCE_COLUMNS 7" + "\n"; 
    load +=  "SET !DATASOURCE_LINE {{i}}" + "\n"; 
    load +=  "SET !extract {{!col1}}" + "\n";
    var load2;
    load2 =  "CODE:";
    load2 +=  "set !extract null" + "\n"; 
    load2 +=  "SET !DATASOURCE input.csv" + "\n"; 
    load2 +=  "SET !DATASOURCE_COLUMNS 7" + "\n"; 
    load2 +=  "SET !DATASOURCE_LINE {{i}}" + "\n"; 
    load2 +=  "SET !extract {{!col2}}" + "\n";
    var load3;
    load3 =  "CODE:";
    load3 +=  "set !extract null" + "\n"; 
    load3 +=  "SET !DATASOURCE input.csv" + "\n"; 
    load3 +=  "SET !DATASOURCE_COLUMNS 7" + "\n"; 
    load3 +=  "SET !DATASOURCE_LINE {{i}}" + "\n"; 
    load3 +=  "SET !extract {{!col3}}" + "\n";
    for(i=1;i<10;i++){
    iimSet("i",i);
    iimPlay(load);
    var content=iimGetLastExtract(0);
    iimSet("i",i);
    iimPlay(load2);
    var content2=iimGetLastExtract(0);
    iimSet("i",i);
    iimPlay(load3);
    var content3=iimGetLastExtract(0);
...
    }

答案 1 :(得分:0)

您还可以存储CSV中的数据,并将整个CSV文件加载到变量中。然后你可以使用split()方法用逗号分割并存储在各个变量中。这个代码太长了,但如果你想使用不同的方法,这是一个想法。