2016-07-05 67 views
4

我在這裏Facebook的iMacros/JS腳本,需要從CSV文件登錄到FB帳戶,然後腳本有第二個循環j,這是從1帳戶發送 20朋友請求。有問題循環iMacros/JS

問題是,當您更改帳戶有一個彈出消息,您需要驗證電話號碼在這種情況下,我需要跳過此帳戶,並轉到其他人。

此代碼意味着如果頁面上出現的消息,必須從j迴路斷線:

if(iimPlayCode('TAG POS=1 TYPE=DIV ATTR=CLASS:"_2e9n"')>0) { 
    break;} 

的問題是,當腳本跳過此帳號它,以及跳過其他CSV文件20頁朋友的URL。

因此j循環必須始終在停止的位置繼續,如果「20」請求以位置「21」開始發送,但當它跳過帳戶並跳過CSV文件中的20行時。

var accounts = 10; 
var total = 100; 
var timeout = 'SET !TIMEOUT_STEP 0\n'; 
var speed = 'SET !REPLAYSPEED FAST\n'; 
var error = 'SET !ERRORIGNORE YES\n'; 

var x = 0;//if no error 

//Login to account from csv file 
for(var i = 1; i <= accounts; i++) { 

    function LogIn() { 
     iimPlayCode(speed+'SET !DATASOURCE Facebooklogin.csv\nSET !DATASOURCE_LINE '+i+'\nTAG POS=1 TYPE=INPUT:EMAIL ATTR=ID:"email" CONTENT={{!COL1}}\nTAG POS=1 TYPE=INPUT:PASSWORD ATTR=ID:"pass" CONTENT={{!COL2}}\nTAG POS=1 TYPE=LABEL ATTR=class:"uiButton uiButtonConfirm"\n') 
    } 

    //Check if already logged in then relog to account from csv file 
    if(iimPlayCode(speed+timeout+'TAG POS=1 TYPE=A ATTR=CLASS:"_2s25"')>0) { 
     iimPlayCode(timeout+'TAG POS=1 TYPE=DIV ATTR=ID:"userNavigationLabel"\nTAG POS=2 TYPE=SPAN ATTR=TXT:Log<SP>Out') 
     LogIn(); 
    } else { LogIn(); } 

if(x==0) { 
     var j = j*20-19; 
    } else if (j > 20) { 
     x = 0; 
    } 

    for (j; j <= total; j++) { 

     //If Security Check 
     if(iimPlayCode('TAG POS=1 TYPE=DIV ATTR=CLASS:"_2e9n"')>0) { 
      x = 1; 
      var j = j - 19; 
      break; 

     } else { 
      x = 0; 
     } 

      //Send Message and Add Friend 
      iimPlayCode(speed+error+'SET !TIMEOUT_STEP 0\nSET !DATASOURCE FacebookFriends.csv\nSET !DATASOURCE_LINE '+j+'\nURL GOTO={{!COL1}}\nSET !EXTRACT {{!URLCURRENT}}\nSAVEAS TYPE=EXTRACT FOLDER=* FILE={{!NOW:yyyy/mm/dd}}.csv\nTAG POS=1 TYPE=A ATTR=HREF:/messages/thread/*\nTAG POS=1 TYPE=TEXTAREA ATTR=CLASS:"br *" CONTENT=""\nTAG POS=1 TYPE=TEXTAREA ATTR=ID:"composerInput" CONTENT=""\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:composer_form ATTR=NAME:send\nURL GOTO={{!COL1}}\n') 

      if(j==20*i) { break; } 
     } 
    };//End of loop 
+0

腳本跳過CSV文件中20條線,因爲你定義'j'爲'變種J = * 20-19;'。所以在這個表達式中使用另一個變量而不是'i',這取決於你的安全檢查。 – Shugar

+0

@Shugar,謝謝你的回覆,我已經修好了添加新變量x;如果沒有錯誤,它等於零,但是現在腳本在發送20個請求後不會中斷「J」循環。你能否修理我犯了一個錯誤的部分。 – Andrew

回答

1

我想你需要的東西是這樣的:

var accounts = 10; 
var total = 100; 
var timeout = 'SET !TIMEOUT_STEP 0\n'; 
var speed = 'SET !REPLAYSPEED FAST\n'; 
var error = 'SET !ERRORIGNORE YES\n'; 

var x = 1; // variable instead of 'i' in 'j'-loop 

//Login to account from csv file 
for(var i = 1; i <= accounts; i++) { 

    function LogIn() { 
     iimPlayCode(speed+'SET !DATASOURCE Facebooklogin.csv\nSET !DATASOURCE_LINE '+i+'\nTAG POS=1 TYPE=INPUT:EMAIL ATTR=ID:"email" CONTENT={{!COL1}}\nTAG POS=1 TYPE=INPUT:PASSWORD ATTR=ID:"pass" CONTENT={{!COL2}}\nTAG POS=1 TYPE=LABEL ATTR=class:"uiButton uiButtonConfirm"\n') 
    } 

    //Check if already logged in then relog to account from csv file 
    if(iimPlayCode(speed+timeout+'TAG POS=1 TYPE=A ATTR=CLASS:"_2s25"')>0) { 
     iimPlayCode(timeout+'TAG POS=1 TYPE=DIV ATTR=ID:"userNavigationLabel"\nTAG POS=2 TYPE=SPAN ATTR=TXT:Log<SP>Out') 
     LogIn(); 
    } else { LogIn(); } 

    j = 20 * x - 19; 
    for (j; j <= total; j++) { 

     //If Security Check 
     if(iimPlayCode('TAG POS=1 TYPE=DIV ATTR=CLASS:"_2e9n"')>0) 
      break; 

     //Send Message and Add Friend 
     iimPlayCode(speed+error+'SET !TIMEOUT_STEP 0\nSET !DATASOURCE FacebookFriends.csv\nSET !DATASOURCE_LINE '+j+'\nURL GOTO={{!COL1}}\nSET !EXTRACT {{!URLCURRENT}}\nSAVEAS TYPE=EXTRACT FOLDER=* FILE={{!NOW:yyyy/mm/dd}}.csv\nTAG POS=1 TYPE=A ATTR=HREF:/messages/thread/*\nTAG POS=1 TYPE=TEXTAREA ATTR=CLASS:"br *" CONTENT=""\nTAG POS=1 TYPE=TEXTAREA ATTR=ID:"composerInput" CONTENT=""\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:composer_form ATTR=NAME:send\nURL GOTO={{!COL1}}\n') 

     if (j == 20 * x) { 
      x++; 
      break; 
     } 
    } 
};//End of loop 
+0

非常感謝您的幫助! – Andrew