Demo-Datasource — использование файла в работе
Макрос Demo-Datasource.iim показывает как можно получить наборы данных из текстового файла и использовать их для заполнения форм на сайте (в частности для заполнения онлайн базы данных). Макрос должен запускаться в цикле.
Описание работы Demo-Datasource.iim:
Строка 1 — указание версии (VERSION) iMacros на которой был написан данный макрос (в данном случае использовался iMacros for Firefox).
Строка 2 — объявляется TAB о том, что работать будем в текущей вкладке (первой), если пишете для себя, то данная строка необязательна.
Строка 3 — при помощи команды SET устанавливаем значение переменной !DATASOURCE, которая отвечает за исходный файл, откуда мы будем получать информацию (если используются переменный !COL, то исходный файл должен быть записан в формате CSV). Примечание: CSV = Comma Separated Values (Запятой Разделенные Значения) в каждой строке файла.
Строка 4 — в зависимости от того, где вы запускаете макрос, (не-) нужно использовать переменную !DATASOURCE_COLUMNS, которая объявляет максимальное количество колонок в файле. Поэтому если сторока нужна, убераем значек комментария, если нет — оставляем все как есть.
Строка 5 — устанавливаем значение переменной !LOOP = 2 для того, чтобы данные извлекались начиная со 2 строки, так как в первой строке находится шапка файла (оформление, подпись колонок. там нет целевой информации).
Строка 6 — задаем номер строки для считывания данных (!DATASOURCE_LINE), для этого используем переменную !LOOP потому что в файле несколько строк, и с каждым проходом меняется номер строки для считывания.
Строка 8 — открываем форму по ссылке URL, которая задана в коде макроса Demo-Datasource.iim.
Cтрока 9-13 — заполняем форму, при помощи команды TAG находим первый элемент попадающий под фильтр: находим на странице форму <FORM> c идентификатором (ID) «demo», внутри тег <INPUT> с type=text и различными названиями атрибута (ATTR) name=[fname | lname | address | city | zip] . Соответственно параметру CONTENT присваиваются значения колонок из файла {{!COL1}} … {{!COL5}}.
Пример CSV файла:
"Имя","Фамилия","Адрес","Город","Почтовый индекс" "Иван","Иванов","ул. Большая 7","г. Иваново","102030" "Петр","Петров","ул. Малая 8","г. Петрозаводск","203040"
Первая строка не извлекается (используется как шапка), во второй {{!COL1}} = «Иван», {{!COL2}} = «Иванов», {{!COL3}} = «ул. Большая 7», …
Строка 15 — аналогично предыдущему использованию комынды TAG, за исключением использования символа процента (%). Используется для выбора значения по идентификатору (value), которые заданы сайтом (можно посмотреть в исходном коде страницы), а не по индексу.
Строка 16 — все аналогично, но используется символ доллара ($). В данном случае используется для выбора страны по текстовому значению, а не по индексу. Индекс — положение записи в поле списка, для США индекс будет 161.
Примечание: строки 15-16, символ * используется для игнорирования пробелов в начале и конце, которые могут быть во входных данных.
Строка 18 — добавляем значение email из исходного файла.
Строка 19 — отправляем форму, путем нажатия кнопки (BUTTON) с type=submit и содержащая текст Submit.
Строка 20 — после того как форма отправилась переходим по ссылку, содержащая текст Back.
После этого автоматически меняется значение !LOOP и все повторяется заново, но уже с другими данными.
Код макроса:
VERSION BUILD=8920312 RECORDER=FX TAB T=1 SET !DATASOURCE Address.csv 'SET !DATASOURCE_COLUMNS 8 SET !LOOP 2 SET !DATASOURCE_LINE {{!LOOP}} ' Заполняем форму URL GOTO=http://demo.imacros.net/Automate/AutoDataEntry TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:fname CONTENT={{!COL1}} TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:lname CONTENT={{!COL2}} TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:address CONTENT={{!COL3}} TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:city CONTENT={{!COL4}} TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:zip CONTENT={{!COL5}} TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=NAME:state CONTENT=%*{{!COL6}}* TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=NAME:country CONTENT=$*{{!COL7}}* TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:email CONTENT={{!COL8}} TAG POS=1 TYPE=BUTTON:submit FORM=ID:demo ATTR=TXT:Submit TAG POS=1 TYPE=A ATTR=TXT:*Back*
Спасибо.
Пошто Ваш текст не в коде каментами, а отдельно от кода?
Пожалуйста. Для того что бы не перегружать код и не отвлекать внимание от команд.
если форма реализована не через id а через класс ?? почему то не получается настроить вот код
VERSION BUILD=9030808 RECORDER=FX
TAB T=1
URL GOTO=https://www.instagram.com/p/BXxpxTtjVon/?hl=eng&taken-by=olgabraylik2016
TAG POS=1 TYPE=TEXTAREA FORM=NAME:NoFormName ATTR=ARIA-LABEL:Addacomment…&&CLASS:_bilrf&&PLACEHOLDER:Addacomment…&&TXT: CONTENT=lallalallaal
TAG POS=1 TYPE=TEXTAREA FORM=NAME:NoFormName ATTR=* CONTENT=lallalallaal
Не могу реализовать отправку, в форму вводится все пучком но не отправляет (пытался реализовать через
EVENT TYPE=KEYPRESS SELECTOR=* KEY=13
) результата нет ….Здравствуйте, проблема в том, что в вашем коде нет команды нажатия на кнопку отправки. Попробуйте еще раз, попробуйте посмотреть исходный код.