- Зміст статті iMacros - це програма, яка дозволяє автоматизувати і імітувати дії користувача в браузері....
- Hello world
- WARNING
- Робота з даними
- Витяг даних з веб-сторінок
- Виклик iMacros з коду
- мови
- C ++
- Використання JavaScript у макросах
- PHP
- Виконання макросів за розкладом
- Direct Screen Technology
- Скріншоти
- тестування сайтів
- Обробка помилок
- Використання проксі-серверів
- альтернативи
- Запис відео
- SRC
- висновок
Зміст статті
iMacros - це програма, яка дозволяє автоматизувати і імітувати дії користувача в браузері. За словами розробників, iMacros завантажили 9 мільйонів разів, але лише 240 тисяч користувачів активно використовують додаток. Тобто лише 3% з встановили продукт знайшли йому застосування. І не випадково. При першому погляді на документацію складно розгледіти його дивовижні, вражаючі можливості. Ця стаття відкриє їх для тебе.
Мал. 1. Початок роботи iMacros
установка
Є два варіанти установки iMacros:
- як розширення (add-ons) для браузера (Firefox, Chrome або Internet Explorer),
- як окремий додаток (тільки для Windows).
В описаних нижче прикладах використаний iMacros Firefox add-on.
Hello world
Основний прийом, яким варто навчитися, - запис дій в браузері і подальше їх відтворення. Перейдемо на вкладку Record на панелі в лівому нижньому кутку екрану і натиснемо на кнопку Record Macro. Тепер вобьем в Google «Hello world» і натиснемо Enter. Потім кнопку Stop (під кнопкою Record Macro). iMacros згенерував код, який можна багаторазово запускати і редагувати:
VERSION BUILD = 7020226 RECORDER = CR URL GOTO = https: //www.google.ru/? Gfe_rd = cr & ei = Jw5gU4LuF9CWwAPQuIG4Ag TAG POS = 1 TYPE = INPUT: TEXT FORM = ID: gbqf ATTR = ID: gbqfq CONTENT = hello <SP > world TAG POS = 1 TYPE = BUTTON FORM = ID: gbqf ATTR = ID: gbqfb
Функція запису макросів дає можливість зайвий раз не заглядати в документацію і автоматизувати найпростіші завдання, що не заморочуючись написанням коду.
WARNING
У браузері Chrome не працює третина iMacros-команд (які - см. Документацію). Тому краще використовувати Firefox (90% можливостей) або Internet Explorer (найбільш повний функціонал).
Робота з даними
Заповнення форм з CSV-файлу з даними
Припустимо, нам потрібно заповнити інформацію про товари інтернет-магазину через CMS-адмінку (конкретний приклад написаний для Insales). Назви, описи, ціни і залишки зберігаються в файлі CSV. Це завдання можна миттєво виконати за допомогою невеликого макросу:
SET! DATASOURCE products.csv 'підключаємо файл CSV (краще прописувати абсолютний шлях) SET! LOOP 4' робимо порядковий обхід файлу і для кожного рядка виконуємо код, наведений далі SET! DATASOURCE_LINE {{! LOOP}} 'відкриваємо сторінку додавання товару URL GOTO = http: //example.com/newproduct 'записуємо значення першого поля файлу CSV в форму для назви товару TAG POS = 1 TYPE = INPUT: TEXT FORM = ID: new_product ATTR = ID: product_title CONTENT = {{! COL1}}' записуємо значення другого поля файлу CSV в форму для короткого назви товару TAG POS = 1 TYPE = TEXTAREA FORM = ID: new_product ATTR = ID: product_short_description CONTENT = {{! COL2}} 'третє і четверте поле - аналогічно TAG POS = 1 TYPE = INPUT: TEXT FORM = I D: new_product ATTR = ID: product_variants_attributes__price CONTENT = {{! COL3}} TAG POS = 1 TYPE = INPUT: TEXT FORM = ID: new_product ATTR = ID: product_variants_attributes__quantity CONTENT = {{! COL4}} 'після введення всіх даних про товар зберігаємо його в каталог TAG POS = 1 TYPE = INPUT: BUTTON FORM = ID: new_product ATTR = * // А ось так виглядає products.csv: "Товар 1", "Опіcаніе товару 1", "555", "7" " товар 2 "," Опіcаніе товару 2 "," 722 "," 13 "" товар 3 "," Опіcаніе товару 3 "," 234 "," 9 "" товар 4 "," Опіcаніе товару 4 "," 301 ", "11" Мал. 2. Запис макросу
Витяг даних з веб-сторінок
А тепер уявімо зворотну ситуацію. Коли потрібно переглянути каталог магазину-конкурента і зберегти інформацію про товари.
'Цей код витягує текстовий вміст з абзаців, що мають атрибут "class", рівний "product_description" TAG POS = 1 TYPE = P ATTR = CLASS: product_description EXTRACT = TXT' А цей зберігає його в файл SAVEAS TYPE = TXT FOLDER = "C: \ "FILE =" product_desc.txt " 'А ось команда для запуску діалогового вікна збереження картинки і натискання кнопки підтвердження: TAG POS = 1 TYPE = IMG ATTR = ID: product_image CONTENT = EVENT: SAVEITEM ONWEBPAGEDIALOG KEYS = {down <SP> 2 } {tab <SP> 1} {enter}
Природно, весь цей код можна використовувати в циклі з динамічними змінними.
Мал. 3. Панель запуску макросу
Виклик iMacros з коду
Будь-макрос можна зберегти у файлі з розширенням iim і використовувати в додатках, написаних на 16 мовах програмування. Тільки треба не забути встановити повну версію (НЕ аддон) iMacros на комп'ютер або веб-сервер.
мови
- ASP
- ASP.NET
- C #
- C ++
- Delphi
- FoxPro
- Java
- JavaScript
- Perl
- PHP
- Python
- Power Shell
- Ruby
- TCL
- VBA
- VBS
Batch-файли
Виклик iMacros з батники - найбільш простий і зручний шлях автоматизувати їх виконання. Досить одного рядка для запуску макросу:
"ProgramFiles \ iOpus \ iMacros \ iMacros.exe" -macro ".. \ .. \ Macros \ Demo \ RegExpSearch.iim"
C ++
Основна складність у використанні iMacros під C ++ - настройка середовища розробки (конкретику за версіями різних середовищ шукай в документації або питай у саппорта). Принцип роботи коду такий же, як в PHP:
IAppPtr app = IAppPtr (__ uuidof (App)); Status s = app-> iimInit ( "", true, "", "", "", cTimeout); s = app-> iimPlay ( "wsh-extract-rate", cTimeout); // Запуск wsh-extract-rate s = app-> iimExit (cTimeout);
Використання JavaScript у макросах
У iMacros можна привласнювати змінним результати виконання JavaScript-коду c допомогою команди EVAL:
SET JSVAR EVAL ( "var JSVAR = 45 + 5; JSVAR;")
PHP
iMacros можна запускати з веб-сервера, використовуючи PHP-скрипт. Навіщо це може стати в нагоді? Для поповнення бази даних за допомогою моніторингу інформаційних сайтів, генерації онлайн-табло результатів тестування стану серверів і так далі. Приклад виклику макросу, який здійснює пошук на сторінці:
<? Php $ iimobject = new COM ( "imacros"); // Звертаємося до компоненту iimRunner (він вже повинен // бути попередньо запущений на сервері) $ imacrosprocess = $ iimobject-> iimInit ( "- runner"); // Отримуємо код макросу і слова для пошуку // з адресного рядка $ imacrosprocess = $ iimobject-> iimSet ( "-var_keyword", $ _GET [ "keyword"]); $ Imacrosprocess = $ iimobject-> iimPlay ($ _GET [ "macro"]); // Виводимо звіт про виконання макросу (вдалося // запустити чи ні) echo "iimplay ="; echo $ imacrosprocess; // і результати пошуку echo "extract ="; echo $ iim1-> iimGetLastExtract; $ S = $ iim1-> iimExit (); ?>
Виконання макросів за розкладом
Для відстрочки виконання команди на n-е кількість секунд існує команда WAIT. приклад:
WAIT SECONDS = 10.
Для більш складного планування виконання макросів треба вдаватися до допомоги сторонніх мов програмування. Найпростіші варіанти - batch-файли + Windows Task Sheduler або PHP + Crontabe.
Мал. 4. Вікно редагування макросу
Direct Screen Technology
Якщо сайт зроблений на Flash, Flex або SilverLight, то до її елементів не можна звернутися стандартними способами (по ідентифікаторів DOM-розмітки). Необхідно використовувати координати об'єкта на веб-сторінці:
'Клік по точці з координатами і введення тексту DS CMD = MOVETO X = 455 Y = 224 CONTENT = {BACKSPACE} текст
За допомогою координатної адресації можна навіть імітувати drag and drop. Перед записом макросу для Flash-сайту необхідно включити Use Direct Screen Commands в налаштуваннях.
Скріншоти
За допомогою команди SCREENSHOT TYPE = (PAGE | BROWSER) FOLDER = folder_name FILE = file_name можна зробити скріншот всієї сторінки, а використовуючи TAG + звернення до елементу + CONTENT = EVENT: SAVE_ELEMENT_SCREENSHOT - окремої її частини.
тестування сайтів
За допомогою iMacros можна легко написати програму для моніторингу часу реакції на різні дії користувача. приклад:
'Завантажуємо сторінку і записуємо в бортовий журнал час на її завантаження URL GOTO = http: //example.com/about STOPWATCH ID = PageAbout' Вводимо ім'я та прізвище користувача в форми і заміряємо час, витрачений на відправку даних TAG POS = 1 TYPE = INPUT: TEXT ATTR = NAME: username CONTENT = Ira TAG POS = 1 TYPE = INPUT: TEXT ATTR = NAME: usersurname CONTENT = Chernova TAG POS = 1 TYPE = BUTTON: SUBMIT FORM = ID: SendInfo ATTR = TXT: SendInfo STOPWATCH ID = SendInfo
Результати вимірювань зберігаються в Imacros \ Downloads \ performance_Stopwatch.csv.
Обробка помилок
За замовчуванням в разі виникнення будь-якої помилки виконання макросу зупиняється. Цього можна уникнути, прописавши на початку! ERRORIGNORE YES.
Використання проксі-серверів
Для цього щоб під'єднатися до проксі-серверам перед виконанням макросу або під час його, використовуй команду proxy:
PROXY ADDRESS = 127.0.0.1: 8888
альтернативи
Запис відео
Якщо ти хочеш зберегти найкращі моменти роботи iMacros на відео - використовуй плагін Capture Fox для Mozilla або Screencastify для Chrome.
SRC
У додатку до журналу є дев'ять шаблонів макросів (з російськомовними коментарями), які ти зможеш пристосувати для вирішення наступних завдань:
- заповнення полів форм з CSV-файлів;
- вилучення даних з таблиці в CSV-файл;
- установка значень в СЕЛЕКТА і перемикачах (radio buttons);
- збереження картинок з сайту;
- обробка спливаючих JS-діалогів;
- друк сторінки;
- створення скріншотів;
- вимір часу на завантаження окремих елементів сторінки і виконання сценаріїв;
- вилучення даних з форм і інших частин веб-сайту.
висновок
У цій статті розглянуті можливості iMacros, що дозволяють вирішувати тривіальні проблеми, з якими може зіткнутися будь-який IT-фахівець або просто активний користувач інету. Всього ж інструмент включає в себе понад півсотні команд, оглянути які в форматі журналу неможливо. Тому, якщо ти не знайшов тут нічого, що могло б полегшити твою рутину в Мережі, не зневіряйся і зазирни в документацію або на форум imacros.net.
Ru/?Навіщо це може стати в нагоді?