Команды
iimGetExtract
ADD
Команда iMacros ADD Команда ADD предназначается для добавления значения к переменной (в данном случае речь идет о математической операции). Один из способов применения в iMacros — вычитание значения, достигается путем добавления отрицательного значения к переменной. Однако, если переменная задана как строка, а не числом, то значение не добавляется, а «приклеивается» к нужной строке. Команда ADD поддерживает встроенные переменные !VAR1, !VAR2, !VAR3 и !EXTRACT. Работает в: Синтаксис:ADD результирующая_переменная добавляемое_значение
Параметры:
Примеры:Если оба значения являются числами, поэтому результатом выполнения команды iMacros ADD является число, результат записан в !VAR1: SET !VAR1 100
ADD !VAR1 -20
'Значение !VAR1 = 80
Если хотя бы одно из значений является строкой, тогда результатом работы будет строка: SET !VAR1 Hello ADD !VAR1 <SP>World<SP> 'Или ADD !VAR1 " World " ADD !VAR1 2015 'Значение !VAR1 = Hello World 2015 Извлекаемые данные можно добавить в встроенную переменную !EXTRACT: ADD !EXTRACT {{!COL1}}
|
BACK
Команда iMacros BACK Команда iMacros BACK выполняет следующую функцию, она открывает предыдущую посещенную страницу из истории браузера. По сути BACK в iMacros заменяет нажатие кнопки Назад в браузере. После выполнения данной команды сайты не сможет определить что Назад вызывает макрос, а не пользователь, кликая мышкой. Работает в: Синтаксис:BACK
Пример:Макрос сохраняет в переменную !VAR1 текущий URL-адрес страницы, затем выполняется команда BACK. На открывшейся странице производятся необходимые манипуляции, в конце скрипт возвращается на первоначальную страницу, записанную в !VAR1 при помощи команды URL GOTO: SET !VAR1 {{!URLCURRENT}}
BACK
'другие команды
URL GOTO={{!VAR1}}
|
CLEAR
CLICK
Команда iMacros CLICK «Клик» (нажатие / CLICK) по любому HTML-элементу, по заданным X / Y
координатам. Начальное положение системы координат находится в левом
верхнем углу страницы. Ось X положительно направлена вправо, ось Y
соответственно вниз. Рекомендуется применять данную команду в скриптах iMacros
только если все прочие способы не работают. Для записи командной CLICK установить Recording mod в положение Use X/Y position, для этого зайдите на вкладку Запись или Rec нажмите кнопку Record options. Работает в: Синтаксис:CLICK X=n Y=m
Параметры:
Пример:В данном примере при помощи iMacros команды CLICK реализуется выбор яблочного пирога на десерт: URL GOTO=http://demo.imacros.net/Automate/TestForm1
CLICK X=316 Y=453
Примечание:
|
DS
Команда DS (DirectScreen) используется, когда остальные команды не справляются! Она имитирует обычный «клик» мыши в окне браузера. Чтобы активировать данную технологию, необходимо во время записи, нажмите на кнопку Click Mode и в появившемся диалоговом окне выберите Use DirectScreen Commands. Обычно DS в iMacros используется для автоматизации работы с веб-страницами, которые содержат не HTML элементы, а «сложные» технологии, такие как Java applets, Adobe Flash, Adobe Flex, Microsoft Silverlight или ActiveX контроль. Также можно автоматизировать даже самый сложный сайт, основанный на AJAX. Работает в: Flash приложение симуляции калькулятора на картинке ниже. Пример сложного (нестандартного) JavaScript — всплывающее диалоговое окно, которое лучше автоматизированной с помощью DirectScreen. Запись DirectScreen команды:При работе не с HTML технологиями, такими как Flash, Java или другими, в стандартном режиме, iMacros не может записать действия. Чтобы записать макрос на Flash или Java applet, вы должны активировать технологию DirectScreen, для этого необходимо:
iMacros записывает действия клавиатуры и мыши, записывается много DS и WAIT команд (в зависимости от сложности выполняемых действий). Далее объясняется, почему. Как определить координаты?Есть несколько способов определения координат для команды DirectScreen: 1. Абсолютное значение (жесткая привязка к осям): DS CMD=MOVETO X=455 Y=224 2. Центр HTML элемента. Элемент берется с предыдущей команды TAG. Свойство особенно полезно для использования с AJAX элементами. DS CMD=MOVETO X={{!TAGX}} Y={{!TAGY}} 3. Центр изображения, определяется по предыдущей команде IMAGESEARCH. Изображение может быть любым, нет ограничения по встроенными HTML изображениям. DS CMD=MOVETO X={{!IMAGEX}} Y={{!IMAGEY}} Почему записалось много WAIT команд?Настройки по умолчанию:
Если вы заметили, что applet срабатывает быстрее, вы можете попробовать сократить время ожидания путем редактирования макроса. Но обратите внимание, что applet обычно требуется некоторое время, чтобы обновиться. Как альтернатива WAIT можно использовать команду IMAGESEARCH, которая сканирует экран браузера до того, пока не появится указанное изображение (например, изображение кнопки или текст). Ввод текста:Когда используется режим записи команд iMacros DS, DS также записывает ввод текста с помощью команды «DS CMD=KEY». Вы можете использовать команду {BACKSPACE}, чтобы перезаписать существующий текст. Вот пример: VERSION BUILD=6000510
TAB T=1
TAB CLOSEALLOTHERS
URL GOTO=http://imacroshelp.ru/
SIZE X=846 Y=612
DS CMD=MOVETO X=244 Y=123
WAIT SECONDS=0.01
DS CMD=LDOWN X=271 Y=79
WAIT SECONDS=0.01
DS CMD=LUP X=271 Y=79
WAIT SECONDS=0.01
DS CMD=KEY X=0 Y=0 CONTENT={BACKSPACE}мой<SP>текст
Синтаксис:DS CMD=команда X=координата Y=координата [CONTENT=некоторый_текст] Параметры:
|
EVAL
Команда iMacros EVAL Команда EVAL позволяет использовать возможности JavaScript в работе iim макроса. Также команда может быть использована для простого анализа и обработки извлеченных данных. Чаще
всего к данной команде обращаются, когда использование встроенного функционала iMacros проще, чем написание кода на js или использование чистого js невозможно, но в целом на JS можно реализовать более сложные проекты. Примеры использования:
Работает в: Синтаксис:SET !VAR1 EVAL("[JavaScript код]")
TAG ... CONTENT=EVAL("[JavaScript код]")
Доступен начиная с iMacros V7.5 и более поздних, дополнение iMacros для Firefox 7.4.0.1 и выше. Параметры:
Примечания:
Примеры:1. Случайное время задержки. Подождать случайно выбранное время (от 1 до 10 секунд), после загрузки страницы: SET !VAR1 EVAL("var randomNumber=Math.floor(Math.random()*10 + 1); randomNumber;")
URL GOTO=http://imacroshelp.ru
' ждать от 1 до 10 секунд
WAIT SECONDS={{!VAR1}}
2. Сгенерировать случайное число в определенном диапазона: SET randomNumber EVAL("var min = 50; var max = 100; var randomNumber = Math.floor(Math.random() * (max - min + 1)) + min; randomNumber;")
3. Получение и сравнение валют. Сохранить результат. Сохранить EUR-ставку в долларах USD, только если она выше определенного порога (1.3 USD). Если ставка ниже, остановить макрос и выдать сообщение об ошибке: URL GOTO=http://www.xe.com/ucc/convert/?Amount=1&From=EUR&To=USD
SET !EXTRACT_TEST_POPUP NO
TAG POS=1 TYPE=TD ATTR=TXT:*<SP>USD&&WIDTH:46%&&ALIGN:left EXTRACT=TXT
SET !VAR1 EVAL("var s = \"{{!EXTRACT}}\"; s.replace(\"USD\",\"\"); var d = parseFloat(s); if(d < 1.3){MacroError(\"Euro меньше 1.3 USD.\");} else {d};")
SET !EXTRACT NULL
SET !EXTRACT {{!VAR1}}
SAVEAS TYPE=EXTRACT FOLDER=* FILE=EuroRate.csv
4. Получение и сравнение даты/времени. Проверить: последнее сообщение старше нескольких часов (12 часов): CLEAR
URL GOTO=http://www.readwriteweb.com/
SET !EXTRACT_TEST_POPUP NO
TAG POS=1 TYPE=DIV ATTR=CLASS:submeta EXTRACT=TXT
SET !VAR1 EVAL("var h = 12; var s = \"{{!EXTRACT}}\"; var re = /\\w+\\s\\d{1,2},\\s\\d{4}\\s+\\d{1,2}\\:\\d{2}\\s[A|P]M/; var postDateStr = re.exec(s); var today = new Date(); var postAge = today.getTime() - Date.parse(postDateStr); var hInMilli = h*60*60*1000; if(postAge > hInMilli){MacroError(\"Сообщение старше 12 часов\");}")
5. Получить вчерашнюю дату. Ввести текст с вчерашней датой в ISO-формате (гггг-мм-дд), месяц меняется, високосный год, и так далее. Для сегодняшней даты можно использовать команду !NOW, но ее не получится преобразовать чтобы получить вчерашнее число, EVAL решает эту проблему: ... CONTENT=EVAL("var d = new Date(); d.setDate(d.getDate() - 1); var year = d.getFullYear(); var month = d.getMonth() + 1; var day = d.getDate(); year + '-' + month + '-' + day;") 6. Получить завтрашнюю дату. Создайте переменную с завтрашней датой в формате дд/мм/гггг: SET tomorrow EVAL("var today = new Date(); var tomorrow = new Date(); tomorrow.setDate(today.getDate() + 1); var day = tomorrow.getDate().toString(); if (day.length < 2) {day = \"0\" + day;} var month = (tomorrow.getMonth() + 1).toString(); if (month.length < 2) {month = \"0\" + month;} var year = tomorrow.getFullYear().toString(); var dateString = day + \"/\" + month + \"/\" + year; dateString;") PROMPT {{tomorrow}} 7. Редактировать извлеченный текст. Преобразование текста в строку верхнего регистра: VERSION BUILD=7400919 RECORDER=FX TAB T=1 URL GOTO=http://android-developers.blogspot.com/2011/09/preparing-for-handsets.html SET !EXTRACT_TEST_POPUP NO TAG POS=1 TYPE=P ATTR=TXT:Early<SP>this<SP>year,* EXTRACT=TXT SET !VAR1 EVAL("var s=\"{{!EXTRACT}}\"; s.toUpperCase()") PROMPT {{!VAR1}} Удалить первые и последние пробелы: SET !EXTRACT " Эта строка имеет в начале и в конце пробелы " ' Отображается значение в кавычках со всеми пробелами PROMPT {{!EXTRACT}} SET trimmedValue EVAL("\"{{!EXTRACT}}\".replace(/^\\s*|\\s*$/g, \"\");") PROMPT "{{trimmedValue}} - без пробелов!" 8. DemoEval.iim: URL GOTO=http://www.iopus.com/imacros/demo/v7/eval.htm 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 h = 20; var s = \"{{!EXTRACT}}\"; var today = new Date(); var postAge = today.getTime() - Date.parse(s); var hInMilli = h*60*60*1000; if(postAge > hInMilli){MacroError(\"Разница во времени более 20 часов\");}else null") SET !EXTRACT NULL TAG POS=1 TYPE=INPUT:TEXT FORM=ID:form1 ATTR=NAME:textfield EXTRACT=TXT SET !VAR2 EVAL("var s=\"{{!EXTRACT}}\"; var d = parseFloat(s); if((d > 99)&&(d < 101))d; else MacroError(\"Значение не в заданных пределах\");")
|
EVENT
Команда iMacros EVENT Команда EVENT — это новая команда для автоматизации управления веб-элементами, с которыми не может справиться классический TAG. Рассмотрим, с чем данная команда может нам помочь:
В частности, EVENT справляется с написанием комментариев на VK.com, в то время, как TAG там бесполезен. Для активации режима записи эвентов, нажмите Record, затем в блоке Recording mode смените радио-баттон на Experimental event recording mode. Работает в: Синтаксис:EVENT TYPE=тип [SELECTOR|XPATH]=местоположение [BUTTON|POINT|CHAR|KEY] = [кнопка|точка|символ|кнопка] [MODIFIERS=модификатор]
Параметры:
Примечание:События клавиатуры которые используют KEY поддерживаются только в дополнении iMacros для Firefox. Примеры:URL GOTO=http://demo.imacros.net/TestPages/ForceDirectedGraph.aspx FRAME NAME=iframeFDgraph EVENT TYPE=MOUSEDOWN SELECTOR="HTML>BODY>svg>g:nth-of-type(10)>circle" BUTTON=0 EVENTS TYPE=MOUSEMOVE SELECTOR="HTML>BODY>svg>g:nth-of-type(10)>circle" POINTS="(559,222),(558,222),(557,222),(555,223), (554,224),(551,224)" EVENTS TYPE=MOUSEMOVE SELECTOR="HTML>BODY>svg" POINTS="(546,227),(536,232),(534,234),(523,243),(515,255),(512,259),(510,263),(500,282),(499,285),(493,300),(492,304),(492,306),(488,321),(487,323),(487,324),(487,326),(486,327),(483,336)" EVENTS TYPE=MOUSEMOVE SELECTOR="HTML>BODY>svg>line:nth-of-type(4)" POINTS="(481,338),(481,339)" EVENTS TYPE=MOUSEMOVE SELECTOR="HTML>BODY>svg" POINTS="(480,340),(479,342),(475,347),(475,348)" EVENT TYPE=MOUSEMOVE SELECTOR="HTML>BODY>svg>g:nth-of-type(10)>circle" POINT="(474,350)" EVENT TYPE=MOUSEMOVE SELECTOR="HTML>BODY>svg" POINT="(473,351)" EVENTS TYPE=MOUSEMOVE SELECTOR="HTML>BODY>svg>g:nth-of-type(10)>circle" POINTS="(472,353),(470,355),(469,357),(468,359),(467,360),(466,360)" EVENT TYPE=MOUSEUP SELECTOR="HTML>BODY>svg>g:nth-of-type(10)>circle" POINT="(466,360)" Используйте команду CLEAR, чтобы локальные данные в кэше не повлияли на измерение времени отклика веб-сайта: URL GOTO=https://moqups.com/#!/ EVENT TYPE=MOUSEDOWN SELECTOR="#preview-svg>svg>svg>svg>foreignObject>DIV" BUTTON=0 EVENTS TYPE=MOUSEMOVE SELECTOR="#preview-svg>svg>svg>svg>foreignObject>DIV" POINTS="(131,254),(132,254),(134,254),(136,255),(139,256),(142,256),(147,256),(153,257),(160,257),(169,258),(190,258)" EVENT TYPE=MOUSEMOVE SELECTOR="#containment" POINT="(204,257)" EVENT TYPE=MOUSEUP POINT="(386,254)" |
EXTRACT
Параметр iMacros EXTRACT Параметр EXTRACT является частью команды TAG. Основной функцией данного параметра является извлечение данных из сайта. Используйте атрибут ATTR для определения той части, которую необходимо извлечь. Обычно эта часть генерируется с помощью мастера извлечения (Extraction Wizard). Параметр EXTRACT ищет исходный HTML код веб-сайта для н-го появления ATTR и извлекает его. ATTR всегда должен заканчиваться шаблонизатором (*). Если несколько команд с EXTRACT выполняются в одном макросе, то результаты отделяются друг от друга строкой «[EXTRACT]». При сохранении извлеченных данных («SAVEAS TYPE=EXTRACT») эта строка автоматически заменяется на перевод на новую строку. Если извлекается таблица целиком, то соседние ячейки таблиц отделяются друг от друга строкой «#NEXT#», а строки таблицы разделяются строкой «#NEWLINE#». Эти спец-теги автоматически заменяются запятой и переводом строки соответственно, когда вы используете команду «SAVEAS TYPE=EXTRACT», но разделители сохраняются при возврате данных в скрипт через вызов функции iimGetLastExtract(). Если извлекаемая таблица содержит вложенные таблицы, то данные внутренней таблицы также будут разделены «#NEXT#» и «#NEWLINE#» . Работает в: Синтаксис:TAG ... EXTRACT=значение Значение параметра EXTRACT команды TAG:
Примечание: при извлечении текста из поля ввода (команда TAG содержит «TYPE=INPUT»), не должно быть параметра CONTENT. Извлечение нестандартных атрибутов:В новых версиях iMacros for Firefox и iMacros Browser, вы можете извлечь любой атрибут. Если вы хотите знать, какие атрибуты доступны, записывайте команду TAG в экспертном режиме. Примеры:Как правило, всплывающие подсказки определяется атрибутом TITLE элемента. Вы можете извлечь содержимое всплывающей подсказки с помощью EXTRACT iMacros: TAG POS=3 TYPE=TD ATTR=TXT:* EXTRACT=TITLE qTip подсказка в JavaScript фреймворке JQuery используется не стандартный «title», а дополнительный атрибут с названием «data-qtip»: TAG POS=1 TYPE=TD ATTR=data-qtip:ComputerName=* EXTRACT=data-qtip ComputerName=* — начальная неизменная часть подсказки и используется для определения всплывающей подсказки которая должна быть извлечена. Запись в Expert Mode создаст команду TAG, которая состоит из всех атрибутов щелкнутого (выбранного) HTML-элемента. |
FILEDELETE