imacros javascript在csv中循环
imacros javascript loops through csv
我的1first.im文件如下所示:
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:2秒.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}}
设置!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}}
但如果有其他方法,我宁愿不逐行浏览文件。
为了防止有人需要更详细的答案,我发现了以下内容:
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只是一个占位符,用于给我暂停或停止宏运行的时间。
如果有人能改进我的解决方案,我将不胜感激。编辑:我忘了加。将其保存为您的newjsfile.js,然后单击播放,就像您对任何其他iim文件所做的那样
所有这些都只能使用javascript或类似工具来完成。您可以在循环中定义部分代码,运行不同的宏并跟踪错误。
运行不同的脚本;
iimPlay("Test.iim");
循环代码:
for(i=1;i<max_loop number){
your_code_here
}
相关文章:
- jQuery:循环一个具有不同超时值的循环
- 在循环中分配json值时,值被覆盖
- 如何在下面的ES6循环中获得前面的文本
- 为什么“;未定义的“;在JavaScript中结束循环
- Javascript循环不会自我更新
- 如何使用jquery处理php循环通过元素
- 而循环只设置php中输入字段中的第一个值
- 循环遍历数组中的特定索引
- 如何在Google Geochart中循环使用带有国家和数据的csv文件
- CSV流中的mongodb.save();Don’我没有被要求参加每个循环
- csv访问器函数for循环
- 循环遍历数据并从csv文件加载数据
- 如何在Imacros中为条件循环加载javascript变量中的csv Col值
- Imacros javascript不会循环通过csv
- Imacros javascript循环通过CSV文件
- 使用javascript实现基于imacros循环的csv值
- imacros javascript在csv中循环
- imacros-jave循环读取新的csv行
- 这个javascript在解析csv文件时保持循环打印数据
- 循环浏览CSV数据并根据值将其分离到辅助阵列中