TAG
Команда iMacros TAG
Команда TAG выбирает HTML-элементы на текущей странице.
Идентификация может быть сделана одним из следующих способов:
тип, положение и атрибуты элемента;
XPATH к элементу;
CSS-селектор элемента.
Если выбранный элемент является ссылкой, когда iMacros кликает на нее, то есть команда TAG действует, как если бы вы нажали на ссылку. Если выбранный элемент является частью формы ввода, то параметр CONTENT можно использовать для заполнения этой формы в выбранном поле.
Синтаксис:
TAG POS=н TYPE=тип [FORM=форма] ATTR=атрибут [CONTENT=содержимое]
или
TAG XPATH="[xpath_путь]" [CONTENT=содержимое]
или
TAG SELECTOR="[селектор_выражение]" [CONTENT=содержимое]
Параметры:
POS
Указывает порядковый номер HTML-элемента. По умолчанию отсчет начинается с верха страницы. Для лучшего понимания смотрите примеры ниже. С помощью «POS=Rн» номер может быть определен по отношению к предыдущей команде TAG.
TYPE
Определяет тип HTML-элемента.
FORM
Задает имя родительского FORM-элемента (работает только с элементами форм).
ATTR
Определяет идентификатор для выбранного элемента.
CONTENT
Определяет содержимое для вставки в выбранный элемент (работает только с элементами форм).
Примечание: замените пробелы на <SP>, например CONTENT=Привет<SP>Мир, или заключить текст в двойные кавычки: CONTENT=»Привет Мир».
Если хотите использовать в содержании двойные фигурные скобки, они должны быть экранированы с помощью #NOVAR#, например:
..CONTENT=#NOVAR#{{НекотороеЗначение}}
Тогда макрос будет относиться к {{НекотороеЗначение}} как к строке, а не как переменная.
EXTRACT
При помощи данного параметра можно извлечь информацию со страницы или из элемента. Читайте подробнее в статье EXTRACT.
XPATH
XPath-выражение для локализации элемента на странице. Пример:
TAG XPATH="id('demo')/div/center/table/tbody/tr[5]/td[3]/input[1]" CONTENT=Да
SELECTOR
CSS-селектор, для идентификации элемента на странице.
Примечания:
Для параметров 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.
SAVEITEM
Данное событие в основном используется для сохранения изображения c сайта, но можно попытаться сохранить и другие элементы страницы. Во время записи макроса на элементе выберите Сохранить как.. и параметр автоматически добавится к команде или можно добавить CONTENT=EVENT:SAVEITEM вручную. Для того, чтобы определить папку и имя загружаемого файла используйте команду ONDOWNLOAD.
SAVE_ELEMENT_SCREENSHOT
Делает скриншот выбранного элемента (области) и сохраняет его как PNG файл.
SAVETARGETAS
Событие называется как соответствующая функции в меню Internet Explorer: Сохранить Объект Как. Вы можете щелкнуть правой кнопкой мыши на любом элементе сайта, чтобы увидеть, поддерживает ли данный элемент эту функцию. Чтобы создать такую команду вы должны нажать на элементе во время записи и добавить CONTENT=EVENT:SAVETARGETAS вручную. Чтобы контролировать местоположение и имя загружаемого файла используйте команду ONDOWNLOAD.
MOUSEOVER
Для выбранного элемента срабатывает событие mouseover (мышь над элементом). Иногда это требуется для изменения состояния изображения. (Не реализован в iMacros v.7 и более ранних версиях).
FAIL_IF_FOUND
Является внутренним событием iMacros в отличие от HTML-событий. Иногда полезно, когда делается поиск по ключевым словам.
Пример:
Макрос для скачивания изображения:
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