Статьи

Автоматизуємо будь-які дії в браузері з iMacros

  1. Зміст статті iMacros - це програма, яка дозволяє автоматизувати і імітувати дії користувача в браузері....
  2. Hello world
  3. WARNING
  4. Робота з даними
  5. Витяг даних з веб-сторінок
  6. Виклик iMacros з коду
  7. мови
  8. C ++
  9. Використання JavaScript у макросах
  10. PHP
  11. Виконання макросів за розкладом
  12. Direct Screen Technology
  13. Скріншоти
  14. тестування сайтів
  15. Обробка помилок
  16. Використання проксі-серверів
  17. альтернативи
  18. Запис відео
  19. SRC
  20. висновок

Зміст статті

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" SET Мал. 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.

Найпростіші варіанти - 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/?
Навіщо це може стати в нагоді?

Новости