{
  "schemaVersion": 1,
  "id": "3c7e9a10-5b2d-4f8e-9a61-0d2c4b6e8f03",
  "name": "Демо: веб-форма",
  "description": "Открывает samples/web/form.html в Edge, заполняет заявку, отправляет её и читает номер заявки",
  "variables": [
    { "name": "fio", "type": "string", "default": "Асанов Нурлан Бакытович", "isArgument": true },
    { "name": "phone", "type": "string", "default": "+996 555 123 456", "isArgument": true },
    { "name": "city", "type": "string", "default": "Бишкек", "isArgument": true },
    { "name": "headless", "type": "boolean", "default": false, "isArgument": true },
    { "name": "requestNumber", "type": "string", "default": null, "isArgument": false }
  ],
  "steps": [
    {
      "id": "s_open0001",
      "type": "browser.open",
      "displayName": "Открыть форму в Edge",
      "props": { "browser": "msedge", "url": "../web/form.html", "headless": "{{ headless }}" }
    },
    {
      "id": "s_fio00001",
      "type": "browser.typeInto",
      "props": { "selector": "#fio", "text": "{{ fio }}", "clearBefore": true }
    },
    {
      "id": "s_phone001",
      "type": "browser.typeInto",
      "props": { "selector": "#phone", "text": "{{ phone }}", "clearBefore": true }
    },
    {
      "id": "s_city0001",
      "type": "browser.selectOption",
      "props": { "selector": "#city", "value": "{{ city }}" }
    },
    {
      "id": "s_submit01",
      "type": "browser.click",
      "displayName": "Отправить заявку",
      "props": { "selector": "#submit" }
    },
    {
      "id": "s_wait0001",
      "type": "browser.waitElement",
      "displayName": "Дождаться результата",
      "props": { "selector": "#result", "state": "visible", "timeoutMs": 10000, "throwOnTimeout": true }
    },
    {
      "id": "s_number01",
      "type": "browser.getText",
      "displayName": "Прочитать номер заявки",
      "props": { "selector": "#requestNumber" },
      "out": { "text": "requestNumber" }
    },
    {
      "id": "s_check001",
      "type": "control.if",
      "props": { "condition": "/^Z-\\d{6}$/.test(requestNumber)" },
      "children": {
        "then": [
          { "id": "s_logok001", "type": "control.log", "props": { "level": "info", "message": "Заявка принята, номер: {{ requestNumber }}" } }
        ],
        "else": [
          { "id": "s_throw001", "type": "control.throw", "props": { "message": "Неожиданный номер заявки: {{ requestNumber }}" } }
        ]
      }
    },
    {
      "id": "s_close001",
      "type": "browser.close",
      "props": {}
    }
  ]
}
