您是否尝试过使用iimGetLastExtract()
您可以创建一个调用 imacros 的 .js 文件。这些宏可以从 DOM 中提取您需要的信息。使用 iimGetLastExtract() 您可以提取这些值并在 js 中对其进行测试
当您在 FF 中时,您实际上可以从 imacros 菜单中选择要运行的 .js 文件。
这是一个旧的 .js 文件示例,我曾经做过这样的事情。我循环遍历动态创建的下拉列表的值并根据其值执行操作。 (如果宏失败,它的值会小于 0:error codes)
var i = 1;
var notDone = 1;
while(notDone > 0) {
//select the board from available
iimSet('name', boardname);
iimPlay('selectBoard.iim');
//pick the next display view and capture the view name
iimSet('index',i);
notDone = iimPlay('assignDisplay.iim');
var displayName = iimGetLastExtract(1),
inputName = iimGetLastExtract(2),
label = '';
if((displayName == '[None]' && displayName == '[None]') || !notDone) {
break;
}
label = (displayName === '[None]') ? inputName : displayName;
if(prefix) label = prefix + label;
if(suffix) label += suffix;
iimSet('name', label);
iimSet('btn',btn);
iimPlay('assignLabelInput.iim');
i++;
}
如果您不熟悉其中的某些内容。我使用 iimSet() 在 imacros 中设置变量。 iimPlay 播放该宏。而在宏本身,这里有一个提取信息的例子
TAG POS=1 TYPE=SELECT FORM=NAME:form1 ATTR=ID:dropdownid EXTRACT=TXT
编辑
这是一个愚蠢的例子,有望展示 js 的使用和 imacros 提取功能
代码
example.js
var allAnswerVotes=[];
var runningTotal = 0;
var working = true;
var i = 2;
while(working) {
iimSet('i', i);
iimPlay('getVotes.iim');
var extract = iimGetLastExtract(1);
if(extract === '#EANF#') {
working = false;
continue; //hault this iteration;
}
var numVotes = parseInt(extract, 10);
allAnswerVotes.push(numVotes);
runningTotal += numVotes;
i++; //increment i to get the next vote
}
alert('The highest vote is '+ Math.max.apply(null, allAnswerVotes)+', with an average of '+ Math.ceil(runningTotal / allAnswerVotes.length));
getVotes.iim
TAG POS={{i}} TYPE=SPAN ATTR=class:*vote-count-post* EXTRACT=TXT
解释
首先要确保这两个文件(example.js、getVotes.iim)位于同一文件夹中,以便 example.js 正确运行 getVotes.iim。
接下来,您只需导航到任何 StackOverflow 线程,从 imacros 菜单中选择 example.js(f8 打开菜单)并推送播放(或只需双击 example.js)
该宏将找到类包含“vote-count-post”的第 i 个位置跨度,并返回该跨度的文本。 i是js传入的参数。我们将从 i = 2 开始,因此第二个投票跨度(我们跳过对问题的投票,只计算答案的投票)。 js将继续调用getVotes.iim,直到getVotes返回一个提取值“#EANF#”,这是宏找不到指定标签时(即当前页面上没有投票时)的返回值。 #EANF# 会将我们踢出我们的循环,然后您会收到有关我们统计的选票的一些基本数学的警报。
这里的选票提取非常愚蠢,但我只是在演示如何在 js 中使用 imacros EXTRACT 的基本示例