在 Watir Robot 参数中转义等号的问题

软件测试 浏览器自动化 瓦提尔 机器人框架
2022-01-15 17:54:56

我们目前正在使用非常可爱的机器人框架进行自动化。

不幸的是,我们遇到了 '=' 字符的问题 - 我们在应用程序中有许多地方可以点击链接,但没有其他选项可以识别该元素。不幸的是,链接通常有一个包含“=”字符的查询字符串,例如:

   ClickLink   href=https://foo.bar.com/admin_login.php?action=logoff&clients_id=mytestaccount.foo.bar.com

因为 Watir-Robot 能够匹配多个 html 标签,所以当 Robot 将上述字符串解析为 Watir-Robot 时,它使用“=”作为分隔符。Watir-Robot 将上述内容视为...

   href=https://foo.bar.com/admin_login.php?action
   id=logoff&clients_id (if no tag is stated it will default to id)
   id=mytestaccount.foo.bar.com

因此不匹配其中任何一个。

作为解决方法,我们尝试了以下方法但没有成功:

  • 机器人的内置转义字符“\”
  • 用 "" 或 '' 包裹字符串
  • 将“=”替换为相关的 html 转义字符“=”
  • 创建包含“=”(不带引号)的变量 ${EQUALS},这与将它们放在首位的结果相同(因为变量在解析之前被纠正)

解决此问题的最佳方法是什么?

2个回答

testerab,您提到使用相关的 HTML 转义字符转义等号。HTML 中特殊字符的编码有两种:实体表示法和 URL 编码。实体表示法中,等号将是

&#x003D

URL 编码中,等号将是

%3D

对于您的问题,适当的编码将是 URL 编码。如果您还没有,请尝试一下。

${NeededString}=    Fetch From Right    ${FullStringWithEQUALSSign}    \=
Print    ${NeededString}

这将获取等号右侧的字符串。这里假设字符串中只有一个等号。

还可以使用“从右拆分字符串”关键字吗?