Типы переменных и синтаксис

Материал из BotZilla
Перейти к: навигация, поиск


Оглавление


Типы переменных

В программе BotZilla используются 6 типов переменных:

  • число
  • строка
  • файл
  • элемент
  • элементы
  • куки
  • булево
  • xdocument
  • xelement
  • xelements

Каждый тип переменных имеет свои особенности, свойства и методы. Числовые и строковые переменные можно подставлять в блоки действий вместо аргументов. Все переменные в блоках обозначаются с помощью синтаксической конструкций "{*" и "*}". Например переменная с именем "пример" будет выглядеть так: {*пример*}. Переменные объявляются на вкладке КОНСТРУКТОР->НАСТРОЙКИ->ДАННЫЕ. Им можно присваивать значения по умолчанию(число, строка, куки, файл), а можно оставлять пустыми.
Переменная может состоять из цифр и букв латинского и русского алфавита, т. е. соответствовать регулярному выражению [0-9A-zА-яЁё]*?.

Число

Числовые переменные можно применять в математических выражениях в блоке ВЫРАЖЕНИЕ для вычисления необходимых значений, также можно применять во всех блоках вместо чисел, заменяя ими индексы, номера и другие числовые значения.

Строка

Тип "строка" представляет последовательность из нуля или более символов. Этот тип можно использовать подставляя в различные блоки, например вместо xpath или как часть xpath.
Переменная с типом строка имеет один метод: "Разбить" - этот метод разбивает строку по символу, указанному аргументом метода, на массив строк и возвращает строку из этого массива, индекс которой указан через точку от метода. Пример: у нас есть строковая переменная "аккаунт" содержащая информацию о аккаунте, которая состоит из логина и пароля в формате логин:пароль и нам необходимо получить в переменную "логин" - логин, а в переменную "пароль" - пароль, делаем 2 блока ОБРАБОТКА СТРОК, в каждый из которых записываем по строке:
{*логин*}={*аккаунт*}.Разбить(:).0
{*пароль*}={*аккаунт*}.Разбить(:).1

Файл

Файл, переменная которая содержит путь к файлу. Если попытаться её вывести, то выведет путь к файлу.
Имеет свойство "Количество", которое содержит количество строк в файле. Если нам необходимо в числовую переменную "числоСтрок" получить число строк, которые содержатся в файле, путь к которому указан в файловой переменной "файл", то в блоке ВЫРАЖЕНИЕ надо записать:
{*числоСтрок*}={*файл*}.Количество
Также переменные с типом "файл" имеют метод для получения строки по индексу, индексирование начинается с нуля, чтобы получить строку по индексу в блоке ВЫРАЖЕНИЕ надо записать:
{*Строка*}={*файл*}.7
Это выражение получит 8-ю строку и запишет её в переменную "Строка", или можно записать:
{*Строка*}={*файл*}.{*индекс*}
Это выражение получит строку с индексом, равным значению переменной "индекс" и запишет её в переменную "Строка".
Пустые строки не учитываются ни в методе ни в свойстве.
Также нужно отметить, что файл, как массив строк можно перебирать в блоке ПЕРЕБОР.

Элемент

Элемент, это переменная, содержащая ссылку на DOM-элемент браузера. Получить переменную типа элемент можно несколькими способами:

  1. из переменной типа ЭЛЕМЕНТЫ с помощью индекса, значение индекса не должно выходить за пределы массива элементов, индексация начинается с 0:

{*кнопка*}={*элементы*}.7 - получит 8-й элемент из массива элементов "элементы" и поместит его в переменную "кнопка"

  1. из переменной ЭЛЕМЕНТЫ в блоке ПЕРЕБОР
  2. с помощью специального блока ПОЛУЧИТЬ ЭЛЕМЕНТ

Клик

Переменную типа "элемент" можно использовать в блоке КЛИК

Xpath

С помощью метода Xpath можно получать первый дочерний элемент соответствующий xpath-выражению в переменную типа "элемент", синтаксис:
{*ссылкаНаВидео*}={*элементВидео*}.Xpath(.//div[1]/div[2]/div[1]/a[1])

Свойства переменной типа "элемент"

Атрибут

Из переменной можно получить её атрибуты, синтаксис:
{*href*}={*ссылка*}.Атрибут(href) - данное выражение в блоке ВЫРАЖЕНИЕ запишет в строчную переменную значение атрибута href, т.е. если в переменной "ссылка" ссылка, то мы получим url.
Так же можно получить любой атрибут: class, style и т.д.

Потомки

Свойство "Потомки" позволит получить коллекцию элементов-потомков в переменную типа "элементы":
{*кнопки*}={*блок*}.Потомки - данное выражение в блоке ВЫРАЖЕНИЕ запишет в переменную "кнопки" типа "элементы" ссылку на коллекцию потомков элемента, ссылка на который записана в переменную "блок"

ЕстьАтрибуты

{*строка*}={*элемент*}.ЕстьАтрибуты - данное выражение в блоке ВЫРАЖЕНИЕ запишет в строчную переменную "строка" значение "true", если в переменной "элемент" типа элемент записана ссылка на элемент, имеющий атрибуты, если атрибутов нет, то вернётся "false"

ЕстьПотомки

{*строка*}={*элемент*}.ЕстьПотомки - данное выражение в блоке ВЫРАЖЕНИЕ запишет в строчную переменную "строка" значение "true", если в переменной "элемент" типа элемент записана ссылка на элемент, имеющий дочерние элементы, если дочерних элементов нет, то вернётся "false".

ПервыйПотомок

Свойство, содержащее первый дочерний элемент.
{*первыйДочерний*}={*элемент*}.ПервыйПотомок - данное выражение в блоке ВЫРАЖЕНИЕ запишет в переменную типа "элемент" с именем "первыйДочерний" ссылку на первый дочерний элемент, ссылка на который записана в переменной типа "элемент" с именем "элемент".

ПоследнийПотомок

Свойство, содержащее последний дочерний элемент.
{*последнийДочерний*}={*элемент*}.ПоследнийПотомок - данное выражение в блоке ВЫРАЖЕНИЕ запишет в переменную типа "элемент" с именем "последнийДочерний" ссылку на последний дочерний элемент, ссылка на который записана в переменной типа "элемент" с именем "элемент".

Следующий

Свойство, содержащее одноуровневый элемент, который идёт после элемента.
{*СледующийЭлемент*}={*элемент*}.Следующий - данное выражение в блоке ВЫРАЖЕНИЕ запишет в переменную типа "элемент" с именем "СледующийЭлемент" ссылку на одноуровневый элемент, который идёт после элемента, ссылка на который записана в переменной типа "элемент" с именем "элемент".

Предыдущий

Свойство, содержащее одноуровневый элемент, который идёт перед элементом.
{*ПредыдущийЭлемент*}={*элемент*}.Предыдущий - данное выражение в блоке ВЫРАЖЕНИЕ запишет в переменную типа "элемент" с именем "ПредыдущийЭлемент" ссылку на одноуровневый элемент, который идёт перед элементом, ссылка на который записана в переменной типа "элемент" с именем "элемент".

Имя

Свойство, содержащее имя тега элемента.
{*строка*}={*элемент*}.Текст - данное выражение в блоке ВЫРАЖЕНИЕ запишет в строчную переменную "строка" имя тега элемента, ссылка на который записана в переменной "элемент" типа элемент.

Родитель

Свойство, содержащее ссылку на родительский элемент.
{*родительскийЭлемент*}={*элемент*}.Родитель - данное выражение в блоке ВЫРАЖЕНИЕ запишет в переменную типа "элемент" с именем "*родительскийЭлемент" ссылку на родительский элемент, ссылка на который записана в переменной типа "элемент" с именем "элемент".

Текст

Свойство, содержащее текстовое содержимое элемента.
{*строка*}={*элемент*}.Текст - данное выражение в блоке ВЫРАЖЕНИЕ запишет в строчную переменную "строка" текстовое содержимое элемента, ссылка на который записана в переменной "элемент" типа элемент.

Элементы

Тип переменной ЭЛЕМЕНТЫ - это массив DOM-элементов веб-страницы, имеющих одинаковый xpath. Получить его можно с помощью блока ПОЛУЧИТЬ ЭЛЕМЕНТЫ. Этот тип переменной имеет свойство "Количество":
{*числоЭлементов*}={*ссылки*}.Количество - выражение вернёт количество элементов в массиве "ссылки" в переменную "числоЭлементов". Смотрите также описание типа переменной ЭЛЕМЕНТ. Этот тип переменных можно использовать в блоке "Перебор": при каждом повторении(итерации) каждая последующая переменная из массива начиная с первой будет записываться в выбранную вами переменную типа "элемент".

Куки

Тип переменной КУКИ содержит путь к файлу, куда были сохранены или должны быть сохранены куки. Собственно сама информация о куки содержится в XML-элементе cookiesItem, именно из этого элемента восстанавливается информация.
Корневой элемент - cookieslist - это контейнер, который содержит в себе дочерние элементы cookiesItem, ограничений по количеству нет.
В дальнейшем куки из этого файла могут быть восстановлены в браузере с помощью 2-х способов:

  • с помощью блока УСТАНОВИТЬ КУКИ
  • с помощью блока ПЕРЕБОР

Тип КУКИ имеет свойство "Количество", которое возвращает количество элементов cookiesItem:
{*количествоАвторизованныхАкков*}={*куки*}.Количество - вернёт число элементов cookiesItem в файле, путь которого содержит переменная {*куки*}.
При указании переменной этого типа в блоке ПЕРЕБОР каждую итерацию в браузере устанавливаются куки из следующего контейнера cookiesItem начиная с первого.
Также этот тип переменной применяется в блоке УСТАНОВИТЬ КУКИ, где куки можно установить зная порядковый номер нужного элемента cookiesItem, нумерация начинается с 0.


XDocument

Переменная типа xdocument используется для получения документа в формате XML при помощи блока POST. Переменная используется для последующего получения элемента или массива.

Элементы

Переменная типа xdocument имеет метод "Элементы" для получения массива элементов в переменную типа xelements, в качестве аргумента принимается строка xpath, идентифицирующая положение нужных элементов. {*группы*}={*doc*}.Элементы("/response/group/gid") - данное выражение получит массив элементов соответствующих xpath "/response/group/gid" в переменную типа xelements {*группы*} из XML документа, ссылка на который хранится в переменной {*doc*}.

Элемент

{*группа*}={*doc*}.Элемент("/response/group/gid") - - данное выражение получит первый элемент соответствующий xpath "/response/group/gid" в переменную типа xelement {*группа*} из XML документа, ссылка на который хранится в переменной {*doc*}.

XElement

Переменная типа xelement используется для хранения XML элемента и последующего получения из неё значения, значений атрибутов, либо получения других элементов.

Значение

Для получения строчного значения XML элемента необходимо использовать следующий синтаксис:
{*gid*}={*элементГруппы*}.Значение

Атрибут

Для получения строчного значения атрибута XML элемента по имени необходимо использовать следующий синтаксис: {*gid*}={*элементГруппы*}.Атрибут("имяАтрибута")

Элемент и Элементы

Синтаксис получения элемента или массива элементов идентичен их получению из переменной типа xdocument.

XElements

Переменная типа xelements используется для хранения массивов XML элементов и последующего получения из неё элементов в блоке ПЕРЕБОР. Для того, чтобы элементы из массива укажите переменную типа xelements и переменную типа xelement, в которую необходимо записывать значения из массива.

Системные переменные

{*время*} - время
{*дата*} - дата
{*датаИвремя*} - дата и время
{*текущийАдрес*} - текущий адрес страницы
{*количествоПрокси*} - показывает количество добавленных прокси на вкладке настройки


Оглавление