среда, 27 апреля 2011 г.

iMacros

iMacros

About

iMacros - это плагин для браузера. Есть версии для FF, IE, Chrome.
Имитирует действия пользователя в браузере с помощью команд-макросов. Макросы записываются в *.iim фалы. Файлы хранятся на диске.
Программа выглядит, как набор команд.

Пример кода:

VERSION BUILD=6650406 RECORDER=FX
TAB T=1
TAB CLOSEALLOTHERS
URL GOTO=http://ya.ru
URL GOTO=javascript:alert('test');

iMacros может работать под управлением JavaScript. Создаются js-файлы, которые могут вызывать iim. Например, в js-файле можно определить переменные, которые будут использоваться в нескольких вызываемых iim-файлах.

Макрокоманды

TAB

закрыть все вкладки браузера, кроме текущей:
TAB CLOSEALLOTHERS
открыть новую вкладку:
TAB OPEN NEW

TAG

обратиться к полю Input и задать ему значение:
TAG POS=1 TYPE=INPUT ATTR=ID:k_name CONTENT={{FIRM}}
получить содержимое страницы внутрь массива iimGetLastExtract (доступен внутри javascript):
TAG POS=1 TYPE=* ATTR=* EXTRACT=TXT

JavaScript

функции

iimPlay('test')
выполнить файл test.iim
iimSet('-var_SERVER', 'http://google.ru')
установить переменную, тогда в iim-файле к ней можно обратиться так:
URL GOTO={{SERVER}}
iimGetLastExtract(1)
обратиться к результату, выдернутому со страницы

объекты

браузер

var br = getBrowser();
var tabs = br.mTabContainer.childNodes; // массив открытых табов браузера
alert(tabs.length); // отобразить количество табов

Решения

Обход по списку ссылок

javascript-файл:
var br = getBrowser();
var tabs = br.mTabContainer.childNodes;
var a = [
    "http://google.ru",
    "http://ya.ru",
    "http://rambler.ru",
    "http://mail.ru",
    "http://yahoo.com"
];
function tt(){
    while ( tabs.length < 3 ){
        iimSet('-var_SERVER', a.pop())
        iimSet('-var_TAB', tabs.length )
        iimPlay( 'test' );
    }
    if (a.length>0){
        setTimeout( tt, 1000 );
    }
}
tt();
iim-файл:
VERSION BUILD=6650406 RECORDER=FX
TAB OPEN NEW
TAB T={{TAB}}
URL GOTO={{SERVER}}

Получение json-строки по URL

js-файл:
iimPlay( "test.iim" );
var myObj = JSON.parse( iimGetLastExtract(1) );
alert(myObj[1]);
iim-файл
URL GOTO={{SERVER}}
TAG POS=1 TYPE=* ATTR=* EXTRACT=TXT





1 комментарий: