我为我的英语道歉。
我在 Imacros 中有两个 JavaScrypt 脚本。每个循环都单独执行自己的循环并且工作不会出现任何问题。 但连续第五天我试图将这两个脚本合并为一个。使这个过程自动化。但不幸的是我一次又一次地失败。为此我开始研究JavaScrypt。我头晕目眩。
脚本1。它适用于链接。
var macro;
macro = "CODE:";
macro += "SET !EXTRACT_TEST_POPUP NO" + "\n";
macro += "SET !ENCRYPTION NO" + "\n";
macro += "SET !ERRORIGNORE YES" + "\n";
macro += "'Подключаем наш файл" + "\n";
macro += "SET !DATASOURCE D:\\iMacros\\Datasources\\Ok\\URLs.csv" + "\n";
macro += "SET !DATASOURCE_COLUMNS 1" + "\n";
macro += "'данные с нужной строки" + "\n";
macro += "SET !DATASOURCE_LINE {{i}}" + "\n";
macro += "URL GOTO={{!COL1}}" + "\n";
macro += "WAIT SECONDS=2" + "\n";
for(i=1;i<=34;i++)
{
iimSet("i",i)
iimPlay(macro)
}
script2 转到 script1 拉出的链接。
var macro;
macro = "CODE:";
macro += "FILTER TYPE=IMAGES STATUS=ON" + "\n";
macro += "TAG POS={{i}} TYPE=A ATTR=CLASS:link__91azp<SP>photo-link__79ad9<SP>__primary__91azp* EXTRACT=HREF" + "\n";
macro += "'PROMPT {{!EXTRACT}}" + "\n";
macro += "TAB OPEN" + "\n";
macro += "TAB T=2" + "\n";
macro += "URL GOTO={{!EXTRACT}}" + "\n";
macro += "WAIT SECONDS=5" + "\n";
macro += "EVENT TYPE=KEYPRESS SELECTOR=* KEY=35" + "\n";
macro += "WAIT SECONDS=2" + "\n";
macro += "TAB CLOSE" + "\n";
for(i=1;i<=20;i++){
iimSet("i",i);
iimPlay(macro);
}
iimPlay(macro)
此脚本2访问此链接成员的个人资料。 我放了20个人。
正如我所说,两个脚本都可以很好地执行其功能,但只是单独执行。我的任务是将这两个脚本合并为一个脚本。 script1 拉了一个链接 - script2 访问了 20 人 - script1 拉了第二个链接 - script2 访问了 20 人等等.... 我将感谢您的帮助。
我所能达到的最大值是 script1 加载 34 个链接中的第一个链接。 script2 只访问了 20 个人中的 1 个人,并且循环重新开始。也就是说,script1 提取第二个链接,script2 访问第二个人,依此类推。我希望一切都是循环的。即 script1 提取了第一个链接 - script2 经过 20 个配置文件,然后循环重新开始,其中 script1 提取第二个链接,而 script2 继续访问 20 个配置文件,依此类推......
您需要两个不同的宏变量名称。
您需要两个不同的索引变量名称。
然后将第二个循环移到第一个循环内。
请注意,我不使用 iMacros,所以我无法测试它,但看起来是正确的。
// Script1. It works with links.
var macro1;
macro1 = "CODE:";
macro1 += "SET !EXTRACT_TEST_POPUP NO" + "\n";
macro1 += "SET !ENCRYPTION NO" + "\n";
macro1 += "SET !ERRORIGNORE YES" + "\n";
macro1 += "'Подключаем наш файл" + "\n";
macro1 += "SET !DATASOURCE D:\\iMacros\\Datasources\\Ok\\URLs.csv" + "\n";
macro1 += "SET !DATASOURCE_COLUMNS 1" + "\n";
macro1 += "'данные с нужной строки" + "\n";
macro1 += "SET !DATASOURCE_LINE {{i}}" + "\n";
macro1 += "URL GOTO={{!COL1}}" + "\n";
macro1 += "WAIT SECONDS=2" + "\n";
// script2 goes to the link that script1 pulled out.
var macro2;
macro2 = "CODE:";
macro2 += "FILTER TYPE=IMAGES STATUS=ON" + "\n";
macro2 += "TAG POS={{i}} TYPE=A ATTR=CLASS:link__91azp<SP>photo-link__79ad9<SP>__primary__91azp* EXTRACT=HREF" + "\n";
macro2 += "'PROMPT {{!EXTRACT}}" + "\n";
macro2 += "TAB OPEN" + "\n";
macro2 += "TAB T=2" + "\n";
macro2 += "URL GOTO={{!EXTRACT}}" + "\n";
macro2 += "WAIT SECONDS=5" + "\n";
macro2 += "EVENT TYPE=KEYPRESS SELECTOR=* KEY=35" + "\n";
macro2 += "WAIT SECONDS=2" + "\n";
macro2 += "TAB CLOSE" + "\n";
for(i=1;i<=34;i++) {
iimSet("i",i)
iimPlay(macro1)
// I changed i to pos for this loop, since you are using i in the outer loop
for(pos=1;pos<=20;pos++){
iimSet("i",pos);
iimPlay(macro2);
}
}