嵌套循环Imacros

时间:2014-02-11 18:05:46

标签: imacros

我正在尝试制作一个包含2个循环的Imacros,但我似乎无法弄明白。它应该首先从csv文件中提取数据并将其提交x次到mywebsite,然后从另一个csv文件中提取x URL并在链接上单击y次。我没有找到任何方法来使用循环而不使用javascript,我不能使用它,因为我对它完全没有知识。这是我到目前为止所得到的:

TAB T=1
URL GOTO=https://mywebsite.com
SET !DATASOURCE infos.csv
SET !DATASOURCE_COLUMNS 5
SET !LOOP 2
SET !DATASOURCE_LINE {{!LOOP}}
TAG POS=1 TYPE=INPUT:Name FORM=ID:sm ATTR=ID:sl CONTENT={{!COL1}}
TAG POS=1 TYPE=INPUT:age FORM=ID:iD ATTR=ID:sD CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:heigh FORM=ID:sf ATTR=ID:lf CONTENT={{!COL3}}
TAG POS=1 TYPE=INPUT:nationality FORM=ID:sfw ATTR=ID:sfq CONTENT={{!COL4}}
TAG POS=1 TYPE=SPAN ATTR=TXT:send
URL GOTO=https://www.mywebsite.com/{{!COL5}}
WAIT SECONDS=1
TAG POS={{!LOOP}} TYPE=I ATTR=TXT:Jump <-- This is the 2nd loop  -->

作为例子,当我将imacros播放循环设置为10时,应将其分配给第一个循环。

提前致谢

2 个答案:

答案 0 :(得分:1)

尝试这个:

for (var i = 0; i < 10; i++)
{
    var macro = "CODE";
    macro +="URL GOTO=https://mywebsite.com" + "\n";
    macro +="SET !DATASOURCE infos.csv" + "\n";
    macro +="SET !DATASOURCE_COLUMNS 5"" + "\n";
    macro +="SET !LOOP 2" "\n";
    macro +="SET !DATASOURCE_LINE" + i + "\n";
    ....

    iimPlay(macro);
    for (var j = 0; i < 10; j++)
    {
        var macro2 = "CODE";
        macro2 += "TAG POS=" + j + "TYPE=I ATTR=TXT:Jump";
        iimPlay(macro2);
    }        
}

所以基本上你定义一个宏字符串,然后使用iimPlay()方法来播放它。确保您创建一个Javascript文件并运行它(仅按播放按钮而不播放播放循环)。

每个字符串都应该有"CODE:"开头。然后在每行iMacros代码后添加一个新行。

非常适合{{LOOP}}只需将其更改为循环变量。

答案 1 :(得分:0)

你不能用常规的imacros做,因为它不支持循环内部循环或一个脚本内的2个不同的循环。使用javascript或类似的。