3

我的 1first.iim 文件如下所示:

VERSION BUILD=7601105 RECORDER=FX
URL GOTO=https:...logout 'just in case 
URL GOTO=https:...login 'go to login
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:loginform ATTR=NAME:username CONTENT=user1
TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:loginform ATTR=NAME:passwd CONTENT=password1
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:loginform ATTR=ID:loginform_submit

SET !DATASOURCE file1.csv
SET !DATASOURCE_COLUMNS 13
SET !DATASOURCE_LINE {{!LOOP}}

URL GOTO={{!COL1}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form ATTR=NAME:field1 CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form ATTR=NAME:field2 CONTENT={{!COL3}}

…………

它必须循环这个 csv 大约 50 次。

然后我需要加载另一个 iim:2second.iim

VERSION BUILD=7601105 RECORDER=FX
URL GOTO=https:...logout 'just in case 
URL GOTO=https:...login 'go to login
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:loginform ATTR=NAME:username CONTENT=user2
TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:loginform ATTR=NAME:passwd CONTENT=password2
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:loginform ATTR=ID:loginform_submit

SET !DATASOURCE file2.csv
SET !DATASOURCE_COLUMNS 13
SET !DATASOURCE_LINE {{!LOOP}}

URL GOTO={{!COL1}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form ATTR=NAME:field1 CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form ATTR=NAME:field2 CONTENT={{!COL3}}

…………

而且我需要多次循环遍历 csv。等等大约80次。

是否可以指定每个 csv 文件要经过多少个 csv 行?或者也许可以说循环遍历 100 行,但如果遇到 EOF(错误代码 -951),则停止运行此宏并移至下一个

可以逐行设置数据源

SET !DATASOURCE file1.csv
SET !DATASOURCE_COLUMNS 13

SET !DATASOURCE_LINE 1

URL GOTO={{!COL1}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form ATTR=NAME:field1 CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form ATTR=NAME:field2 CONTENT={{!COL3}}

SET !DATASOURCE_LINE 2

URL GOTO={{!COL1}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form ATTR=NAME:field1 CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form ATTR=NAME:field2 CONTENT={{!COL3}}

SET !DATASOURCE_LINE 3

URL GOTO={{!COL1}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form ATTR=NAME:field1 CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form ATTR=NAME:field2 CONTENT={{!COL3}}

......... SET !DATASOURCE_LINE 30

URL GOTO={{!COL1}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form ATTR=NAME:field1 CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form ATTR=NAME:field2 CONTENT={{!COL3}}

但如果有另一种方式,我宁愿不逐行浏览文件。

4

2 回答 2

3

以防万一有人需要更详细的答案,这就是我发现的:

var unu;
var doi;
    unu =  "CODE:";
    unu  +=  "VERSION BUILD=7601105 RECORDER=FX" + "\n";
    unu  +=  "URL GOTO=...logout" + "\n";
    unu  +=  "URL GOTO=...login" + "\n";
    unu  +=  "TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:loginform ATTR=NAME:username CONTENT=user" + "\n";
    unu +=  "TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:loginform ATTR=NAME:passwd CONTENT=password" + "\n";
    unu +=  "TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:loginform ATTR=ID:loginform_submit" + "\n";

    doi =  "CODE:";
    doi +=  "SET !DATASOURCE file1.csv" + "\n";
    doi +=  "SET !DATASOURCE_COLUMNS 3" + "\n";


    doi +=  "SET !DATASOURCE_LINE {{i}}" + "\n";
    doi +=  "URL GOTO={{!COL2}}" + "\n";
    doi +=  "TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:formular ATTR=NAME:field1 CONTENT={{!COL1}}" + "\n";
    doi +=  "TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:formular ATTR=ID:field2 CONTENT={{!COL3}}" + "\n";
    doi +=  "WAIT SECONDS = 5" + "\n";

iimPlay(unu);
for(i=1;i<4;i++){
iimSet("i",i);
iimPlay(doi);
}

这样,您只需执行一次登录部分,然后它会根据需要多次循环遍历 csv 文件。

WAIT SECONDS = 5 只是一个占位符,让我有时间暂停或停止宏运行。

如果有人可以改进我的解决方案,我将不胜感激。编辑:我忘了补充。将此保存为 yournewjsfile.js 并单击播放,就像对任何其他 iim 文件一样

于 2013-02-21T14:05:19.663 回答
1

所有这一切都只能使用 javascript 或类似工具来完成。您可以在循环中定义部分代码并运行不同的宏并跟踪错误。

运行不同的脚本;

iimPlay("Test.iim");

循环代码:

for(i=1;i<max_loop number){
your_code_here
}
于 2013-02-21T09:14:52.747 回答