2014-02-11 232 views
1

我試圖讓一個Imacros包含2個循環,但我似乎無法弄清楚。它應該首先從csv文件中提取數據並將其提交x次到mywebsite,然後從另一個csv文件中提取x個URL並在鏈接上單擊y次。我無法找到任何方法必須不使用JavaScript循環,我不能使用它,因爲我對它的知識絕對零。這是我走到這一步:嵌套循環Imacros

TAB T=1 
URL GOTO=https://mywebsite.com 
SET !DATASOURCE infos.csv 
SET !DATASOURCE_COLUMNS 5 
SET !LOOP 2 
SET !DATASOURCE_LINE {{!LOOP}} 
TAG POS=1 TYPE=INPUT:Name FORM=ID:sm ATTR=ID:sl CONTENT={{!COL1}} 
TAG POS=1 TYPE=INPUT:age FORM=ID:iD ATTR=ID:sD CONTENT={{!COL2}} 
TAG POS=1 TYPE=INPUT:heigh FORM=ID:sf ATTR=ID:lf CONTENT={{!COL3}} 
TAG POS=1 TYPE=INPUT:nationality FORM=ID:sfw ATTR=ID:sfq CONTENT={{!COL4}} 
TAG POS=1 TYPE=SPAN ATTR=TXT:send 
URL GOTO=https://www.mywebsite.com/{{!COL5}} 
WAIT SECONDS=1 
TAG POS={{!LOOP}} TYPE=I ATTR=TXT:Jump <-- This is the 2nd loop --> 

爲爲例,當我設置的iMacros發揮環路10,這應該被分配到第一環。

在此先感謝

回答

1

試試這個可能:

for (var i = 0; i < 10; i++) 
{ 
    var macro = "CODE"; 
    macro +="URL GOTO=https://mywebsite.com" + "\n"; 
    macro +="SET !DATASOURCE infos.csv" + "\n"; 
    macro +="SET !DATASOURCE_COLUMNS 5"" + "\n"; 
    macro +="SET !LOOP 2" "\n"; 
    macro +="SET !DATASOURCE_LINE" + i + "\n"; 
    .... 

    iimPlay(macro); 
    for (var j = 0; i < 10; j++) 
    { 
     var macro2 = "CODE"; 
     macro2 += "TAG POS=" + j + "TYPE=I ATTR=TXT:Jump"; 
     iimPlay(macro2); 
    }   
} 

所以基本上你定義一個宏字符串,然後使用iimPlay()方法播放。確保你創建一個Javascript文件並運行它(只按下播放按鈕沒有播放循環)。

每個字符串都應該有"CODE:"開始。然後在每行iMacros代碼後添加一個新行。

對於{{LOOP}}只是將其更改爲循環變量。

+0

謝謝,如果你不介意,我還有一個問題,我無法在任何地方找到答案。 TAG POS = X,X是一個隨機數,我嘗試過POS = *,但它不工作,任何想法,我怎麼能使它工作? – user2647010

+0

我不太在乎這個專家。我不相信* Tag與Pos Pos合作。我敢肯定,你可以再次提出這個問題,但只是發佈新的代碼和任何問題。希望它有幫助 – puretppc

0

你不能做到這一點與普通iMacros的,因爲它不支持循環內循環或一個腳本中2個不同的循環。使用JavaScript或類似的。

+0

我將如何繼續使用Javascript?我對此毫無所知,所以如果你能指出我正確的方向,我將不勝感激。謝謝 – user2647010

+1

這個網站上有大量的javascript循環代碼示例。使用搜索 – Bestmacros

+0

或者你可以訪問他的或我的個人資料,並檢查答案。 iMacros有很多答案。 – macroscripts