我正在尝试制作一个包含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时,应将其分配给第一个循环。
提前致谢
答案 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或类似的。