Андрей Смирнов
Время чтения: ~5 мин.
Просмотров: 4

iMacros run — запуск макроса из другого

imacros-run-zapusk-makrosa-iz-drugogo.png

iMacros run позволяет запускать один макрос из другого, скрипт из скрипта и вариации макросов и скриптов. Теперь зачем это надо, в общепринятой практике программирования принято разбивать свой код на фрагменты. Это могут быть функции, объекты или как в нашем случае — отдельные файлы. Преимущество в том, что код разделен на смысловые единицы, и если что то работает неправильно, то можно легко определить, в каком файле произошел сбой, и соответственно тестировать только этот файл, а не всю программу (цепочку) целеком.

Пример из моей практики: был один управляющий скрипт, и несколько макросов (разгадка капчи, проверка на капчю, заполнение данных, запись логов работы). Каждый макрос выполнял отдельный простой функционал, в результате все работало четко, и если случались ошибки, то можно легко отследить и исправить их.

Синтаксис iMacros run:

  1. Запуск .iim файла из .iim, который находится в той же папке:
    URL GOTO=imacros://run/?m=название_файла.iim
  2. Запуск .iim файла из .iim, который находится в каталоге на уровень ниже. Что это значит, в папке iMacros/Macros лежит файл «1.iim» и папка «Новая папка», в которой находится файл 2.iim. Тогда для того чтобы вызвать 2.iim из 1.iim нужна следующая команда:
    URL GOTO=imacros://run/?m=Новая%20папка/2.iim

    Примечание: обратите внимание, что пробел заменен на «%20». Если нужно вызвать 1.iim из 2.iim, то используется слеующую комбинацию iMacros run:

    URL GOTO=imacros://run/?m=1.iim

    Примечание: указываем именно так, потому что 1.iim лежит в папке iMacros/Macros, т.е. указывается путь к макросам относительно данной папки.

  3. Запуск .js файла из .iim:
    URL GOTO=imacros://run/?m=название_файла.js
    URL GOTO=imacros://run/?m=Новая%20папка/название_файла.js
  4. Запуск .iim файла из .js оба файла находятся в одной папке:
    iimPlay('название_файла.iim')

    .iim файл лежит в папке на уровень ниже .js файла:

    iimPlay('Новая папка/2.iim')

    Примечание: на уровень выше вызвать не получится, для этого воспользуйтесь вызовом по полному пути. вызов .iim файла по полному пути к нему:

    iimPlay('C:\Users\Admin\iMacros\Macros\Новая папка\2.iim')
  5. Запуск .js файла из .js
    iimPlayCode('URL GOTO=imacros://run/?m=название_файла.js')
    iimPlayCode('URL GOTO=imacros://run/?m=Новая папка/название_файла.js')
    iimPlay('C:\Users\Admin\iMacros\Macros\Новая папка\название_файла.js')

    Примечание: для данного пункта характерны все особенности iMacros run, описанные в 4 пункте.

К сожалению не все пункты работают во всех браузерах, однако могу посоветовать использовать iMacros for Firefox, который обладает самым большим функционалом, все команды описанные в статье, в Firefox — работоспособны.

Задача: запустить из одного скрипта Imacros другой скрипт.

Как запустить *.iim-файла из *.iim:URL GOTO=imacros://run/?m=path/file.iim

Старт *.js-файла из *.iim: (старт js из iim)URL GOTO=imacros://run/?m=path/file.js

Старт *.iim-файла из *.js: (старт iim из js)iimPlay(“path/file.iim”)

Старт *.js-файла из *.js: (старт js из js)iimPlayCode(“URL GOTO=imacros://run/?m=path/file.js”)

Где «path» в коде — путь до скрипта относительно родительской папки Imacros.

То есть, если у вас скрипт с именем 1.iim лежит в общей куче скриптов, то указываете так:URL GOTO=imacros://run/?m=1.iim а если вы создали в папке скриптов папку lolo, то указываете так:URL GOTO=imacros://run/?m=lolo/1.iim

Примеры:

Код второго скрипта, который следует создать перед запуском первого и сохранить его под именем 2.iim:VERSION BUILD=8890130 RECORDER=FX TAB T=1 URL GOTO=about:newtab URL GOTO=http://semmblog.ru/imacros-skript-web-pauka.html

Код основного скрипта:VERSION BUILD=8890130 RECORDER=FX URL GOTO=about:newtab URL GOTO=http://semmblog.ru/ WAIT SECONDS=10 URL GOTO=imacros://run/?m=2.iim

Asked3 years, 11 months agoActive3 years, 11 months agoViewed 1k times

I have an issue with my imacros script: When I run AMF-Master.iim script.

VERSION BUILD=8300326 RECORDER=FX SET !ERRORIGNORE YES URL GOTO=imacros://run/?m=ADDMEFAST/FB-Followers.js URL GOTO=imacros://run/?m=ADDMEFAST/FB-Likes.js URL GOTO=imacros://run/?m=ADDMEFAST/FB-Post-Like.js URL GOTO=imacros://run/?m=ADDMEFAST/FB-Post-Share.js URL GOTO=imacros://run/?m=ADDMEFAST/G-Circles.js URL GOTO=imacros://run/?m=ADDMEFAST/MS-Friends.js URL GOTO=imacros://run/?m=ADDMEFAST/PT-Followers.js URL GOTO=imacros://run/?m=ADDMEFAST/PT-Likes.js URL GOTO=imacros://run/?m=ADDMEFAST/PT-Repins.js URL GOTO=imacros://run/?m=ADDMEFAST/TW-Favorites.js URL GOTO=imacros://run/?m=ADDMEFAST/TW-Followers.js URL GOTO=imacros://run/?m=ADDMEFAST/TW-Retweets.js URL GOTO=imacros://run/?m=ADDMEFAST/YT-Likes.js URL GOTO=imacros://run/?m=ADDMEFAST/YT-Subscribe.js URL GOTO=imacros://run/?m=ADDMEFAST/Daily-Bonus.js 

First it starts running line3, URL GOTO=imacros://run/?m=ADDMEFAST/FB-Followers.js. And when it finishes running that, it stops right there. It does not run the fourth line which is URL GOTO=imacros://run/?m=ADDMEFAST/FB-Likes.js and the other lines as well. And all my .js file are located in the same folder on ADDMEFAST file. So what is the problem in here?

|improve this question

1 Answer 1

active oldest votes1

‘iMacros’ for Firefox can run only one command like URL GOTO=imacros://run/?m=… and it must be at the end of a macro. (The reason is that this command ends up with an error.) So, if you want proceed with the following scripts, you may add the line which includes the command for the next script to play, i.e. for ‘FB-Followers.js’ it will be:

iimPlayCode("URL GOTO=imacros://run/?m=ADDMEFAST/FB-Likes.js"); 

for ‘FB-Likes.js’:

iimPlayCode("URL GOTO=imacros://run/?m=ADDMEFAST/FB-Post-Like.js"); 

etc.

Also you can try to write one control script (not macro) like so:

iimPlayCode("URL GOTO=imacros://run/?m=ADDMEFAST/FB-Followers.js"); // time to finish the script (choose yourselves) iimPlayCode("WAIT SECONDS=3"); iimPlayCode("URL GOTO=imacros://run/?m=ADDMEFAST/FB-Likes.js"); iimPlayCode("WAIT SECONDS=3"); iimPlayCode("URL GOTO=imacros://run/?m=ADDMEFAST/FB-Post-Like.js"); // ... 

However more likely I would recommend the first suggestion, because the second one may have unexpected behaviour.

|improve this answer

Not the answer you’re looking for? Browse other questions tagged or ask your own question.

lang-jsИспользуемые источники:

  • https://imacroshelp.ru/novosti/imacros-run-zapusk-makrosa-iz-drugogo.html
  • https://ydalenka.ru/note/my-kak-v-imacros-zapustit-odin-makros-iz-drugogo/
  • https://stackoverflow.com/questions/35201935/imacros-running-iim-without-stopping

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации