2016-07-05 2 views
4

여기 CSV 파일에서 FB 계정에 로그인해야하는 Facebook 용 iMacros/JS 스크립트가 있습니다. 스크립트에 두 번째 루프가 있습니다 j 1 명의 계정으로부터 20 명의 친구 요청을 보내고 있습니다.루프 iMacros/JS에 문제가 있습니다.

문제는 계정을 변경할 때 전화 번호를 확인해야하는 팝업 메시지입니다.이 경우이 계정을 건너 뛰고 다른 계정으로 이동해야합니다.

이 코드는 메시지를 표시 페이지에있는 경우가 j 루프에서 중단해야 함을 의미합니다 : 스크립트는이뿐만 아니라 그것을 계정 다른 CSV 파일 20 개 친구 URL을 건너 건너 뜁니다 때

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

이슈입니다.

그래서 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

당신이''var에 J로 j'을 정의하기 때문에 스크립트가 CSV 파일에 20 줄을 건너 뛰고이 = 난 20-19을 *을;'. 따라서이 표현식에서'i' 대신에 다른 변수를 사용하면 보안 검사에 의존하게됩니다. – Shugar

+0

@ Shugar, 답장을 보내 주셔서 감사합니다. 새 변수 x를 이미 추가 했으니 까. 오류가 없으면 0과 같지만 스크립트는 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

관련 문제