首页 > 解决方案 > 如果条件,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] 找到客户,邮箱为 70866223@domain.com

[信息] 执行:| 回声 | 预期的电子邮件名称:${!COL1} | |

[echo] 预期的电子邮件名称:70866223

[信息] 执行:| 如果 | ${emailAddress} == "${!COL1}@domain.com" | |

[错误] if 的 runEval 条件出错:无效或意外令牌

所以你可以看到变量${emailAddress}${!COL1}正确存储,但我的if情况没有正确评估。我也尝试过更改\"${!COL1}@domain.com\"${!COL1} + \"@domain.com\"相同的结果。

我认为这与转义字符或其他内容有关,但我在文档中找不到任何相关内容。任何指针表示赞赏。

标签: seleniumui-automationkantu

解决方案


if 表达式的处理方式与 storeEval 中的一样。引用文档中的 storeEval 示例之一

x="${myvar}"; x.长度;

请注意,我们的变量 ${myvar} 在执行 Javascript EVAL 之前被转换为文本字符串。因此 ${myvar} 必须像任何其他文本一样位于 "..." 内。

所以我想说你的代码在 if 上失败的原因是你的 ${emailAddress} 不在字符串中。

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

应该管用。


推荐阅读