Недопустимый или неожиданный токен в Kantu, если условие

Я впервые использую инструмент веб-автоматизации Kantu. Большая часть этого интуитивно понятна, но теперь я сталкиваюсь с ошибкой при циклическом просмотре CSV. Соответствующая часть моего сценария:

{
  "Command": "echo",
  "Target": "Found customer with email ${emailAddress}",
  "Value": ""
},
{
  "Command": "echo",
  "Target": "Expected email name: ${!COL1}",
  "Value": ""
},
{
  "Command": "if",
  "Target": "${emailAddress} == \"${!COL1}@domain.com\"",
  "Value": ""
},

Это создает следующий журнал:

[информация] Выполнение: | эхо | Найден клиент с адресом электронной почты ${emailAddress} | |

[echo] Найден клиент с электронной почтой [email protected]

[информация] Выполнение: | эхо | Ожидаемое имя электронной почты: ${!COL1} | |

[эхо] Ожидаемое имя электронной почты: 70866223

[информация] Выполнение: | если | ${emailAddress} == ${!COL1}@domain.com | |

[ошибка] Ошибка в состоянии runEval, если: недопустимый или неожиданный токен

Итак, вы можете видеть, что переменные ${emailAddress} и ${!COL1} сохранены правильно, но мое условие if оценивается неправильно. Я также пытался изменить \"${!COL1}@domain.com\" на ${!COL1} + \"@domain.com\" с тем же результатом.

Я предполагаю, что это как-то связано с escape-символами или чем-то еще, но я не могу найти ничего связанного в документах. Любые указатели приветствуются.


person Tom Troughton    schedule 29.01.2019    source источник


Ответы (1)


Выражение if обрабатывается так же, как в storeEval. Процитируем один из примеров storeEval в документах:

х=${мойвар}; х.длина;

Обратите внимание, что наша переменная ${myvar} преобразуется в текстовую строку перед выполнением Javascript EVAL. Поэтому ${myvar} должен быть внутри... как и любой другой текст.

Поэтому я бы сказал, что причина, по которой ваш код не работает, заключается в том, что ваш $ {emailAddress} не находится внутри строки.

"${emailAddress}" == "${!COL1}@domain.com"

должно сработать.

person Pinkie Pie    schedule 29.01.2019
comment
Привет, @PinkiePie, что тебя не устраивает в моих правках к этому ответу? Синтаксис, который я дал, был на 100% правильным, так почему вы отклонили его? - person SilSur; 17.05.2019
comment
@getsetcode - { Command: if, Target: \${emailAddress}\ == \${!COL1}@domain.com\, Value: } ... это правильный код для вашей проблемы. - person SilSur; 17.05.2019
comment
Привет, @SilSur, предложенное тобой редактирование прошло рецензирование. Вы можете проверить статус и причины отклонения здесь stackoverflow.com/review/suggested-edits/23034100. что помогает :) - person Pinkie Pie; 22.05.2019