Объекты среды выполнения
Аргументы
Аргументы, также как и переменные, очень широко применяются для подстановки данных, и могут быть использованы в тех же случаях, что и переменные.
Основные отличия от переменных:
- Аргументы - это статические данные, заданные итератором на определенном цикле итераций
- Аргументы существуют во всех контекстах и являются контекстно-независимыми
- Аргументы нельзя изменить, можно подставлять и читать их значения
Ниже приведены примеры использования аргументов в различных ситуациях:
# ИСПОЛЬЗУЕМ АРГУМЕНТЫ `start_date` и `end_date` ИТЕРАТОРА ПО ДАТАМ В ПЕРЕХОДЕ НА ОПРЕДЕЛЕННУЮ СТРАНИЦУ
- walk:
to: 'http://www.somesite.com/?getDataFrom=<%start_date%>&to=<%end_date%>'
do:
# ИСПОЛЬЗУЕМ АРГУМЕНТ `age` CSV/FIELDSET ИТЕРАТОРА В КОМАНДЕ ДЛЯ ДОБАВЛЕНИЯ ЛИНКА В ПУЛ
- link_add:
url: 'http://www.somesite.com/?getDataFromAge=<%age%>'
# ИСПОЛЬЗУЕМ АРГУМЕНТ `date` В КОМАНДЕ ДЛЯ ПОИСКА БЛОКОВ ПО CSS-PATH
- find:
path: '.vetrina > tbody > tr:has(td:nth-of-type(4):matches(<%date%>))'
do:
# ИСПОЛЬЗУЕМ АРГУМЕНТЫ `start_date` и `end_date` ИТЕРАТОРА ПО ДАТАМ В POST ЗАПРОСЕ
- walk:
to:
post: http://www.somesite.com
data:
getDataFrom: <%start_date%>
to: <%end_date%>
do:
# ИСПОЛЬЗУЕМ АРГУМЕНТ `age` CSV/FIELDSET ИТЕРАТОРА В ФОРМЕ
- find:
form: main
do:
- fields_set:
age: <%age%>
- submit
# ИСПОЛЬЗУЕМ АРГУМЕНТ `age` ПРИ УСТАНОВКЕ ЗНАЧЕНИЯ В РЕГИСТР
- register_set: Маше было <%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(",");
})();'
Более подробно мы рассмотрим применение аргументов итераторов в соответствующем разделе.