iMacro 的 !LOOP 来自命令行

iMacro's !LOOP from command line

除了描述问题并希望有人能指出正确的方向外,我不确定如何表达这个问题。我写了一个 bash 脚本,它从 iMacros 调用宏。宏如下所示:

VERSION BUILD=8920312 RECORDER=FX
TAB T=1
URL GOTO=http://www.event.com/schedual
SET !EXTRACT_TEST_POPUP NO
SET !ERRORIGNORE YES

TAG POS={{!LOOP}} TYPE=A ATTR=TXT:02 EXTRACT=HTM

SAVEAS TYPE=EXTRACT FOLDER=/root/Desktop FILE=TodaysEvents.csv
TAB CLOSE

当它 运行 从浏览器使用播放循环按钮时,宏会起作用。但是,当我尝试 运行 bash 脚本中的宏时,它只会提取循环中的第一个实例并退出。我 运行 的命令如下所示:

iceweasel "imacros://run/?m=TodaysEvents.iim"

终端中的 运行 macros 是否有涉及循环的特殊语法?我正在 运行 退出 Debian,如果有帮助,我会使用 iMacros Firefox 扩展。

正如 Shugar 指出的那样,唯一的解决方案是使用 javascript。 iMacros 浏览器附带的脚本界面不同于 Firefox iMacros 中内置的 JavaScript 解释器。 iMacros 浏览器仅适用于 windows,因此对 linux 用户来说是个遗憾,但 Firefox 附加组件是通用的。下面的步骤将帮助任何人在这篇“!LOOP”从命令行失败的帖子中遇到问题。

`Step 1)  Record your macro as you would normally. You can look at the above for an example.`
`Step 2)  Write a JavaScript file like below and save in the same folder as the rest of your imacros scripts (~/iMacros/Macros), with the .js extention.`


const L = "\n";
iimPlayCode("TAB T=1" + L + "URL GOTO=http://www.event.com/schedual" + L);

for (i = 1; i < 130; i++) {
    iimSet("loop", i);
    iimPlayCode("SET !ERRORIGNORE YES" + L + "TAG POS={{loop}} TYPE=A ATTR=TXT:02 EXTRACT=HTM" + L + "SAVEAS TYPE=EXTRACT FOLDER=/root/Desktop FILE=TodaysEvents.csv" + L);
}

诀窍是你必须回到你的TodaysEvents.iim(原始示例)脚本并将所有代码放入上面的 iimPlayCode 声明并将“{{!LOOP}}更改为“{{ loop}}”。此外,如果您想知道 JavaScript 中的 "i < 130" 意味着您希望脚本最多循环 130 次并且 "URL GOTO" 必须在循环。 然后,您可以 运行 从命令行使用以下循环:

firefox "imacros://run/?m=TodaysEvents.js"