Объекты среды выполнения

Аргументы

Аргументы, также как и переменные, очень широко применяются для подстановки данных, и могут быть использованы в тех же случаях, что и переменные.

Основные отличия от переменных:

  1. Аргументы - это статические данные, заданные итератором на определенном цикле итераций
  2. Аргументы существуют во всех контекстах и являются контекстно-независимыми
  3. Аргументы нельзя изменить, можно подставлять и читать их значения

Ниже приведены примеры использования аргументов в различных ситуациях:

              # ИСПОЛЬЗУЕМ АРГУМЕНТЫ `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(",");
            })();'
              

Более подробно мы рассмотрим применение аргументов итераторов в соответствующем разделе.