{ iMacros } 如何循环并点击下一步?

{ iMacros } How to Loop and Click Next?

第一次使用 iMacros。

我想 运行 循环 50 次,然后在完成后单击 "Next" 按钮并再次 运行 相同的循环 50 次,单击 "Next".. . 直到 "Next" 不再可点击。

到目前为止我只用了 1 次:

SET !LOOP 1

TAG POS={{!LOOP}} TYPE=TD ATTR=CLASS:domain EXTRACT=TXT
SAVEAS TYPE=EXTRACT FOLDER=* FILE=Extract_{{!NOW:ddmmyy}}.csv

'click NEXT'
TAG POS=1 TYPE=A ATTR=TXT:Next

WAIT SECONDS=3

此代码会对您有所帮助,

只是为了让您熟悉 imacros 的解释。

  1. 您需要在 Imacros 中创建一个 script.js 文件并粘贴此代码。
  2. 执行 while 循环将 运行 大括号内的代码永远。
  3. 然后我们硬编码两个正在使用的宏,如下所示,并为其分配一个 javascript 变量,在循环 iimplay() 内部是一个 javascript 函数,可以 运行 宏代码.所以我们 运行 (macroStart)"check next button" 检查 next 是否仍然存在。
  4. 函数 iimGetLastExtract() 将从代码中获取最后提取的值。
  5. 如果提取的文本是下一个,则打破无限循环。
  6. else 运行 "extract and send to csv file" 宏 (macro2).

代码:

var macro1;
macro1 =  "CODE:";
macro1 +=  "SET !ERRORIGNORE YES" + "\n"; 
macro1 +=  "TAG POS=1 TYPE=A ATTR=TXT:Next EXTRACT=TXT" + "\n"; 

var macro2;
macro2 = "CODE:" + "\n"; 
macro2 +=  "SET !ERRORIGNORE YES" + "\n"; 
macro2 += "TAG XPATH=(/html/body//td[contains(@class,'domain')])[{{j}}] EXTRACT=TXT" + "\n"; 
macro2 += "SAVEAS TYPE=EXTRACT FOLDER=C:/Users/Naren/Desktop/ FILE=output.csv" + "\n"; 


var macro3;
macro3 = "CODE:" + "\n"; 
macro3 +=  "SET !ERRORIGNORE YES" + "\n"; 
macro3 += "TAG POS=1 TYPE=A ATTR=TXT:Next" + "\n"; 
macro3 += "WAIT SECONDS=5" + "\n"; 

for(var j = 1; j <= 50; j++){
    iimSet("j",j);
    iimPlay(macro2);
}
iimPlay(macro3);
do{
    iimPlay(macro1);
    var macro1Extract = iimGetLastExtract();

    if (macro1Extract !== 'Next') {
         break;
    }
    for(var j = 1; j <= 50; j++){
        iimSet("j",j);
        iimPlay(macro2);
    }
    iimPlay(macro3);
}while (true);