Selenium IDE:如何验证 <TD> 包含混合标签和 <BR> 中断的内容

Selenium IDE: How to verify <TD> Contents when it contains a mix of tags and <BR> breaks

我的目标是验证一个复杂的 TD 单元的内容。它包含一个 SPAN 标签和许多 BR 标签。我仅限于使用 Selenium IDE 进行此测试。源文本如下所示:

<td>
 <span><b style="whatever">TEXT_1</b></span> 
 <br style="whatever">
  TEXT_2
 <br style="whatever">
  TEXT_3
 <br>
</td>

TEXT_1 / TEXT_2 / TEXT_3 都不包含任何 space。

我将TD内容拉入变量'td_cell_contents'。然后 Javascript 用于在单个 space:

上拆分该变量
store | javascript{storedVars['td_cell_contents'].split(' ')[0]} | var_1
store | javascript{storedVars['td_cell_contents'].split(' ')[1]} | var_2

var_1 计算结果为 "TEXT_1" 正如我预期的那样,因为它与单元格的其余部分之间有一个 space。 当我回显 var_2 时,日志文件显示那是 "TEXT_2" 和 "TEXT_3" 之间的换行符,因为它们之间有一个 BR 标记:

[info] echo: var_2: TEXT 2
TEXT 3

我尝试使用 JavaScript 去除换行符,因为这个换行符很难进行强比较:

runScript | var_2 = var_2.replace(/(?:\r\n|\r|\n)/g, '<br />'); |

当我 运行 再次为 var_2 回显命令时,日志显示换行符仍然存在。它阻止了进行字符串匹配的能力。

正在寻求帮助...并且愿意在 Selenium 中使用其他方法 IDE。如果我可以在不删除换行符的情况下以某种方式验证单元格内容,那对我来说没问题。

我在回答这个问题时做了一些假设。听起来您的目标是验证 var_2 的内容。剥离换行符是达到目的的一种手段。不过还有其他方法可以做到这一点。

你为什么不尝试创建一个名为 "expected_var_2_value" 的变量,并将其设置为等于预期的 var_2 字符串,而不删除换行符,如下所示:

store | TEXT_2\nTEXT_3 | expected_var_2_value

然后将其与var_2进行比较:

verifyEval | storedVars['expected_var_2_value']==storedVars['var_2'] | true

出于某种原因,verifyEval 中的 Javascript 在比较 storedVars[[=​​23=]] 时对我有用,但如果提供了实际的底层字符串,则会失败。

无论如何,如果您能提供反馈,我将不胜感激。