TAG

Команда iMacros TAG

Команда TAG выбирает HTML-элементы на текущей странице. 

Идентификация может быть сделана одним из следующих способов:

Если выбранный элемент является ссылкой, когда iMacros кликает на нее, то есть команда TAG действует, как если бы вы нажали на ссылку. Если выбранный элемент является частью формы ввода, то параметр CONTENT можно использовать для заполнения этой формы в выбранном поле.

Синтаксис:

TAG POS=н TYPE=тип [FORM=форма] ATTR=атрибут [CONTENT=содержимое]

или

TAG XPATH="[xpath_путь]" [CONTENT=содержимое]

или

TAG SELECTOR="[селектор_выражение]" [CONTENT=содержимое]

Параметры:

Примечания:

Для параметров TYPE, FORM и ATTR используются промежуточные (суб-) параметры_формы. Суб-параметры используются в следующем виде: параметр_формы=промежуточный_параметр:значение.

Переход по ссылкам:

Для того, чтобы переходить по ссылкам командой iMacros TAG, нужно в параметре TYPE установите значение A

Для данного действия параметр FORM не обязателен. Связь с ссылкой будет осуществляться только при определении POS и ATTR. Не всегда можно использовать порядковый номер ссылки (определяется параметром POS), для однозначной идентификации можно использовать текст ссылки и/или ее URL. Поэтому параметр ATTR предлагает два различных вспомогательных параметра: TXT и HREF. Для того чтобы кликнуть на ссылку по ее названию:

..ATTR=TXT:название_ссылки

чтобы кликнуть при помощи URL:

..ATTR=HREF:некоторый_url

Иногда, при нажатии на ссылку при помощи TAG, страница долго загружается, iMacros не ждет достаточно времени и останавливается с ошибкой. Этого можно избежать путем увеличения времени ожидания (установите необходимое значение, в секундах, при помощи переменной !TIMEOUT_STEP).

Как избежать перехода по ссылкам?

Используйте команду TAG с параметром EXTRACT=TXT, чтобы избежать, перехода по ссылке или клику по кнопке. В этом случае, нужно очистить переменную !EXTRACT перед реальным извлечением данных:

SET !EXTRACT NULL

Таймаут:

Иногда текст не появляется сразу после загрузки страницы. Примером могут служить aJax-запросы или перенаправляющие (редирект) страницы, которые отображают какое-то сообщение, например «Обработка запроса».

Так что, если нужно подождать, пока какой-нибудь текст не появится, хорошая новость заключается в том, что команда TAG имеет возможность автоматизировать это:

TAG iMacros ждет !TIMEOUT_STEP секунд и каждую секунду проверяет, если ли необходимый текст. По умолчанию время ожидания составляет 6 секунд.

Заполнение формы:

На одной странице может находиться сразу несколько форм, поэтому параметр FORM определяет с какой формой мы будем работать, используя имя формы, которое зададим при помощи промежуточного параметра NAME. Тип заполнемого поля выбирается с помощью параметра TYPE, в случае необходимости используются дополнительные параметры.

Специальный TAG команды для выпадающего меню:

Параметр CONTENT используется для указания того, какой элемент из выпадающего меню (генерируется с помощью HTML тега <SELECT>) будет выбран. Ниже представлен небольшой хтмл код такого меню, далее для него рассмотрим примеры.

<select name="select1">    <option value="">Выберите фрукты</option>    <option value="AP 1">Яблоко</option>    <option value="BN">Банан</option>    <option value="Special">Киви</option> </select>

По умолчанию параметр CONTENT, для TYPE=SELECT, сохраняет значение опции, если таковая имеется. В противном случае, iMacros использует отображаемое имя выбранного варианта. Третья возможность это позиция в списке (также называемая индексом) выбранного значения.

Вы можете вручную определить что будет использоваться для идентификации: название, индекс, или значению (value). Названием пункта меню является текст, который отображается в раскрывающемся меню. Значением является текст, который можно получить из VALUE=значение. Индекс выбирается по позиции элемента в списке возможных вариантов, начиная с 1.

Чтобы выбрать элемент командой iMacros TAG по имени добавить $ перед именем, как в примере ниже:

TAG POS=1 TYPE=SELECT FORM=NAME:form1 ATTR=NAME:select1 CONTENT=$Яблоко

Для выбора пункта меню по его значению используйте символ процента (%):

TAG POS=1 TYPE=SELECT FORM=NAME:form1 ATTR=NAME:select1 CONTENT=%AP<SP>1

Чтобы выбрать по индексу используйте символ #:

TAG POS=1 TYPE=SELECT FORM=NAME:form1 ATTR=NAME:select1 CONTENT=#2

Пробелы записываются с помощью <SP>, или текст должно быть помещен внутрь двойных кавычек («»).

TAG POS=1 TYPE=SELECT FORM=NAME:form1 ATTR=NAME:select1 CONTENT=$Картофель<SP>Фри 

TAG POS=1 TYPE=SELECT FORM=NAME:form1 ATTR=NAME:select1 CONTENT=$"Хлеб и Масло"

Два последних случая не чувствительны к регистру и есть возможность применения шаблонизатора (*).

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

TAG POS=1 TYPE=SELECT FORM=NAME:form1 ATTR=NAME:select1 CONTENT=$Яблоко:$*ягода*:$Персик  

TAG POS=1 TYPE=SELECT FORM=NAME:form1 ATTR=NAME:select1 CONTENT=#1:#3:#8

Чтобы выбрать все значения используйте CONTENT=ALL. 

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

Примечание к iMacros для Firefox/Chrome:

При использовании символов $,% и # совместно с переменными, эти символы должны быть вне двойных кавычек {{..}}, т.к. iMacros может определить тип переменной во время парсинга. Это точно так же, как и в любом другом скриптовом языке, когда вы должны объявить тип перед использованием, думаю на примерах сейчас станет ястно что имелось ввиду:

Пример не будет работать в Firefox и Chrome:

SET !VAR1 $*яблоко* TAG POS=1 TYPE=SELECT FORM=NAME:form1 ATTR=NAME:select1 CONTENT={{!VAR1}}

Вот так нужно правильно записать:

SET !VAR1 *яблоко* TAG POS=1 TYPE=SELECT FORM=NAME:form1 ATTR=NAME:select1 CONTENT=${{!VAR1}}

Скрытые поля:

Скрытые поля ввода используются в HTML для записи некоторой информации о пользователе или служебной (например, имя пользователя, идентификатор сеанса) в HTML-коде, делается это для того, чтобы пользователю не приходилось каждый раз вводить ее вручную, когда загружается новая страница. Поскольку скрытые поля не отображаются в браузере, iMacros TAG для них не могут быть записаны автоматически. Но вы можете добавить команды TAG с TYPE=HIDDEN вручную в макрос, после чего iMacros будет заполнять скрытые поля во время воспроизведения. Для того, чтобы сделать запись подобного типа команду, для начала запишите TAG для видимого поля (например, поле ввода имени), допустим вы получили следующую строку:

TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:TestForm ATTR=NAME:Name CONTENT=Петр

Измените ее для скрытого поля, измените тип INPUT:TEXT на INPUT:HIDDEN и имя (NAME) c «Name» на «abc». Вот что получается:

TAG POS=1 TYPE=INPUT:HIDDEN FORM=NAME:TestForm ATTR=NAME:abc CONTENT=999999

Загрузка файлов:

Internet Explorer и другие браузеры не позволяют осуществлять прямое заполнение каких-либо полей с типом FILE. Как правило, эти поля используются для загрузки файлов. Тем не менее, iMacros может автоматически отправить файл с помощью команды TAG.

Срабатывание события:

Иногда требуется сделать определенные действия на странице, для этого есть специальные параметры в команде iMacros TAG. Чтобы запустить событие запишите следующее EVENT:название_события в качестве параметра CONTENT.

Пример:

Макрос для скачивания изображения:

URL GOTO=http://www.bookbaby.ru/_/rsrc/1512244125220/home/feedbackb.png

ONDOWNLOAD FOLDER=* FILE=* 

'Любая из команд ниже скачивает картинку: 

TAG POS=1 TYPE=IMG ATTR=HREF:http://*.jpg CONTENT=EVENT:SAVEITEM 

'

TAG POS=1 TYPE=IMG ATTR=HREF:http://*.jpg CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT