2016-07-05 3 views
4

У меня есть скрипт iMacros/JS для Facebook, который должен войти в учетную запись FB из CSV-файла, затем сценарий имеет второй цикл j, который отправляет 20 запросов друга от 1 учетной записи.У вас проблема с контуром iMacros/JS

Проблема заключается в том, что при смене учетной записи появляется всплывающее сообщение, в котором вам необходимо подтвердить номер телефона, в этом случае мне нужно пропустить эту учетную запись и перейти к другой.

Этот код означает, что если на странице появляется сообщение, что необходимо вырваться из j петли:

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

Вопросы, когда скрипт пропустит этот счет как хорошо пропускает 20 друзей URL-адреса в другой файл CSV.

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

Скрипт пропускает 20 строк в CSV-файле, так как вы определяете '' j' как вар у = я * 20-19; '. Поэтому в этом выражении используйте другую переменную вместо 'i', которая будет зависеть от вашей проверки безопасности. – Shugar

+0

@ Шугар, спасибо за ваш ответ, я уже просил добавить новую переменную x; который равен нулю, если нет ошибки, но теперь скрипт не прерывает цикл «J» после отправки 20 запросов. Можете ли вы исправить часть, где я совершил ошибку. – 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