Вы пробовали использовать iimGetLastExtract()
Вы можете создать файл .js, который вызывает imacros. эти макросы могут извлекать необходимую информацию из DOM. используя iimGetLastExtract(), вы можете извлечь эти значения и проверить их в js
Когда вы находитесь в FF, вы можете фактически выбрать файл .js для запуска из меню imacros.
Вот пример старого .js-файла, который я использовал, чтобы делать именно такую вещь. im, зацикливая на значения динамически созданного выпадающего списка и делая вещи на основе его значения. (Если макрос не удается, то будет значение меньше 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++;
}
Если вы Арент знакомы с некоторыми из вещей, которые там. im, используя 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, выбрать example.js из меню imacros (f8, чтобы открыть меню) и нажать кнопку воспроизведения (или просто дважды щелкнуть example.js)
макрос найдет i- й позиции с классом, содержащим «count-count-post» и вернуть текст этого диапазона. i - параметр, который передается js. мы начнем с i = 2, поэтому второй диапазон голосов (мы пропускаем голосование за вопрос и подсчитываем только голоса за ответы). js будет продолжать вызывать getVotes.iim до тех пор, пока getVotes не вернет значение извлечения «# EANF #», которое является возвращаемым значением, когда макрос не может найти указанный тег (т. е. когда на текущей странице нет голосов). # EANF # вышвырнет нас из нашего цикла, а затем вы получите предупреждение с некоторой базовой математикой по подсчитанным нами голосам.
Экстрагирующих голосов здесь довольно глупо, но я просто демонстрирую простой пример того, как использовать imacros ЭКСТРАКТ в JS
Спасибо за ваш ответ, вы можете предоставить образец рабочего код, как вы используете внешними такие файлы, как 'selectBoard.iim' и т. д. Я не могу получить этот процесс. – Mayank
Я отредактировал свой ответ, чтобы включить полный .js и .iim файл для использования в качестве основного примера. Вы можете создать эти файлы в своей папке imacros и вставить в них вышеуказанный код, чтобы увидеть пример в действии. Скорее всего, вам понадобятся более сложные тесты и теги, но, надеюсь, это может помочь вам начать –