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=]] 时对我有用,但如果提供了实际的底层字符串,则会失败。
无论如何,如果您能提供反馈,我将不胜感激。
我的目标是验证一个复杂的 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=]] 时对我有用,但如果提供了实际的底层字符串,则会失败。
无论如何,如果您能提供反馈,我将不胜感激。