Объекты среды выполнения
Переменные
Переменная в мета-языке - это именованная область памяти. Данные, находящиеся в переменной, называются значением этой переменной.
Основные моменты, которые вы должны знать о переменных в мета-языке:
- Переменные служат для хранения каких либо данных, и использования их в разных блоках и контекстах
- В переменные могут быть записаны строковые литералы напрямую, из регистра или из других переменных
- Переменные используются как подставные данные для различных команд, включая команды для заполнения регистра
- Переменные существуют во всех контекстах и контекстно-независимы
Ниже приведены примеры использования переменных:
# ИСПОЛЬЗУЕМ ПЕРЕМЕННЫЕ `term` и `page` ПРИ ПЕРЕХОДЕ НА ОПРЕДЕЛЕННУЮ СТРАНИЦУ
- walk:
to: 'http://www.somesite.com/?q=<%term%>&page=<%page%>'
do:
# ИСПОЛЬЗУЕМ ПЕРЕМЕННЫЕ `term` и `page` В КОМАНДЕ ДЛЯ ДОБАВЛЕНИЯ ЛИНКА В ПУЛ
- link_add:
pool: results
url: 'http://www.somesite.com/?q=<%term%>&page=<%page%>'
# ИСПОЛЬЗУЕМ ПЕРЕМЕННУЮ `date` В КОМАНДЕ ДЛЯ ПОИСКА БЛОКОВ ПО CSS-PATH
- find:
path: '.vetrina > tbody > tr:has(td:nth-of-type(4):matches(<%date%>))'
do:
# ИСПОЛЬЗУЕМ ПЕРЕМЕННЫЕ В POST ЗАПРОСЕ
- walk:
repeat: <%repeat%>
to:
post: https://www.someonlinestore.com/shop/AjaxCategoryCustomResultsView
data:
storeId: 31150
catalogId: <%catid%>
langId: -1
categoryId: <%categoryid%>
frgPageName: CategoryPage
beginIndex: <%ind%>
currentPageNumber: <%cpn%>
pageView: grid
currentScrollNumber: <%cpn%>
env_maxEditorialScroll: 0
headers:
x-requested-with: XMLHttpRequest
do:
# ИСПОЛЬЗУЕМ ПЕРЕМЕННУЮ `age` В ФОРМЕ
- find:
form: main
do:
- fields_set:
age: <%age%>
- submit
# ИСПОЛЬЗУЕМ ПЕРЕМЕННУЮ `age` ПРИ УСТАНОВКЕ ЗНАЧЕНИЯ В РЕГИСТР
- register_set: Маше было <%age%> лет
# ИСПОЛЬЗУЕМ ПЕРЕМЕННЫЕ `fieldname` и `age` ПРИ УСТАНОВКИ ИМЕНИ ПЕРЕМЕННОЙ И ЕЕ ЗНАЧЕНИЯ
- variable_set:
field: <%fieldname%>
value: Маше было <%age%> лет
# ИСПОЛЬЗУЕМ ПЕРЕМЕННУЮ `total` ПРИ ВЫПОЛНЕНИИ JS КОДА
- eval:
routine: js
body: '(function() {
var t = <%total%>;
var offset = [];
for (var i = 1; (i-1)*26 < t; i++) {
offset.push(i);
}
return offset.join(",");
})();'
Как вы видите, переменные могут быть использованы для подстановки данных очень широко.