如何使用iMacros循环执行第2步?如何选择其他href?

时间:2011-04-12 11:30:55

标签: firefox imacros

我有这个iMacros代码片段

VERSION BUILD=7200328 RECORDER=FX
TAB T=1
URL GOTO=http://feedburner.google.com/fb/a/myfeeds
SET !LOOP 1
TAG POS={{!LOOP}} TYPE=A ATTR=HREF:http://feedburner.google.com/fb/a/dashboard?id=*
TAG POS=1 TYPE=A ATTR=TXT:Publicize
TAG POS=1 TYPE=SPAN ATTR=TXT:Socialize
TAG POS=1 TYPE=SELECT FORM=NAME:editFeedActionForm ATTR=ID:postFields CONTENT=$Title<SP>and<SP>Body
WAIT SECONDS=2
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:mainForm ATTR=VALUE:Save
TAG POS=1 TYPE=A ATTR=TXT:FeedBurner

上述脚本将提取与http://feedburner.google.com/fb/a/dashboard?id=*规则匹配的href,并尝试在页面上进一步导航。

然而,页面上有两个链接具有相同的东西,我想只循环奇数值。 像1,3,5,7如何为循环设置自定义步长值?

2 个答案:

答案 0 :(得分:5)

这种简单的算法也可以用iMacros语言完成:

'Store the value of !loop in a variable
SET !VAR1 {{!LOOP}}
ADD !VAR1 {{!LOOP}}
'now !var1 = 2*!loop. Subtract 1 to get odd numbers.
ADD !VAR1 -1
TAG POS={{!VAR1}} TYPE=A ATTR=HREF:http://feedburner.google.com/fb/a/dashboard?id=*

此致

玛西亚

答案 1 :(得分:4)

  

...我想只循环奇数值

iMacros language本身是一种描述性语言(类似于HTML),不包含条件语句或任何花哨的东西。

因此,不使用iMacros LOOP按钮,而是使用iMacros for Firefox的内置Javascript scripting支持来运行循环。在循环内部,您可以使用iimPlay调用宏(并使用iimSet定义值)。

这样的事情应该有效:

iimDisplay("Start loop...);

for (i = 0; i < 100; i=i+2) {
    iimDisplay("Step "+(i+1));
    retcode = iimPlay("your macro name here");
    if (retcode < 0) {
        report += ": "+iimGetLastError();
        alert ( report );
    }
}
iimDisplay("complete");