Demo-Eval — раскрываем возможности EVAL

Demo-Eval.iim

Макрос Demo-Eval.iim показывает возможности использования команды EVAL. Она позволяет проверить значения на сайте и использовать временной диапазон (рандомная задержка) в ваших макросах. И все остальное возможности, которые может дать JavaScript, например: генерация случайного числа или форматирование текстовых строк.

Описание работы Demo-Eval.iim:

Строка 1 — указание версии (VERSION) iMacros на которой был написан данный макрос.

Строка 2 — объявляется TAB о том, что работать будем в текущей вкладке (первой), если пишете для себя, то данную строку можно пропустить.

Строка 3 — открываем сайт по ссылке URL, которая задана в коде макроса Demo-Eval.iim.

Строка 4 — при помощи команды SET устанавливаем значение переменной !VAR1, при помощи команды EVAL, которая выбирает рандомное число от 1 до 5.

Строка 5 — командой WAIT устанавливаем временную задержку, количество секунд задается переменной !VAR1, которая была задана в 4 строке.

Строка 6 — командой SET задаем значение NO для переменной !EXTRACT_TEST_POPUP (теперь информация, извлекаемая при помощи EXTRACT, не будет автоматически открываться во всплывающем окне).

Строка 7 — при помощи команды TAG находим первый элемент попадающий под фильтр: HTML-элемент <B> содержащий любой текст (TXT:*). Параметром EXTRACT извлекаем текст, определенного элемента.

Строка 8 — при помощи команды SET устанавливаем значение переменной !VAR2, при помощи команды EVAL, которая проверяет текущее время, а именно: больше ли оно 20 часов, если да, то останавливает макрос с ошибкой.

Строка 9 — очищаем переменную !EXTRACT для следующего задания.

Считаем сколько раз слово «macro» встречается на странице (строки 10-12).

Строка 10 — при помощи команды TAG находим первый элемент попадающий под фильтр: HTML-элемент <DIV>, у которого атрибут (ATTR) id = «main» . Параметром EXTRACT извлекаем текст, данного элемента.

Строка 11 — при помощи команды SET устанавливаем значение переменной !VAR1, при помощи команды EVAL, считается количество найденых слов «macro» на странице, в зависимости от количества записывается разный текст в переменную.

Строка 12 — командой PROMPT выводим содержимое переменной !VAR1 в диалоговое окно.

Строка 13 — очищаем переменную !EXTRACT для дальнейшего использования.

Строка 14 — при помощи команды TAG находим первый элемент попадающий под фильтр: HTML-элемент <INPUT> с type = «text», у которого атрибут (ATTR) name = «textfield» . Параметром EXTRACT извлекаем номер, который содержится в данном поле.

Строка 15 — командой SET устанавливаем значение переменной !VAR2, при помощи команды EVAL, делаем: переписываем извлеченное значение (строка 14) во внутреннюю переменную, преобразуем ее в число, после этого проверяем, если значение больше 99 и меньше 101 то ничего не делаем, иначе останавливаем макрос Demo-Eval.iim с ошибкой.

Код макроса:

VERSION BUILD=10.4.28.1074
TAB T=1
URL GOTO=http://demo.imacros.net/Automate/Eval
SET !VAR1 EVAL("Math.floor(Math.random()*5 + 1);")
WAIT SECONDS={{!VAR1}}
SET !EXTRACT_TEST_POPUP NO
TAG POS=1 TYPE=B ATTR=TXT:* EXTRACT=TXT
SET !VAR2 EVAL("var hoursN = 20, hourInMs = 60 * 60 * 1000, s=\"{{!EXTRACT}}\", now = new Date(), deviation = now.getTime() - Date.parse(s);  if (deviation > hoursN * hourInMs) MacroError(\"Время больше 20 часов\")")
SET !EXTRACT NULL
TAG POS=1 TYPE=DIV ATTR=ID:main EXTRACT=TXT
SET !VAR1 EVAL("var m = '{{!EXTRACT}}'.match(/\\bMacro\\b/ig); if (!m) 'слово \"macro\" не найдено'; else 'Найдено ' + m.length + ' совпадений со словом \"macro\" на странице';")
PROMPT {{!VAR1}}
SET !EXTRACT NULL
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:form1 ATTR=NAME:textfield EXTRACT=TXT
SET !VAR2 EVAL("var s=\"{{!EXTRACT}}\", d = parseFloat(s); if(d > 99 && d < 101) d; else MacroError(\"Значение не в заданных пределах\");")

 

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *