我的目标是验证复杂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都不包含任何空格。
我将TD内容拉入变量'td_cell_contents'。然后Javascript用于在单个空间上拆分该变量:
store | javascript{storedVars['td_cell_contents'].split(' ')[0]} | var_1
store | javascript{storedVars['td_cell_contents'].split(' ')[1]} | var_2
var_1评估为“TEXT_1”正如我所期望的那样,因为它与单元格的其余部分之间存在空间。 当我回显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运行echo命令时,日志显示换行仍然存在。它阻止了进行字符串匹配的能力。
寻求帮助......并且愿意在Selenium IDE中使用其他方法。如果我可以以某种方式验证单元格内容而不剥离对我来说没问题的换行符。
答案 0 :(得分:2)
我在回答这个问题时做了一些假设。听起来你的目标是验证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
出于某种原因,在比较storedVars ['expected_var_2_value']时,verifyEval中的Javascript对我有用,但如果提供了实际的基础字符串则会失败。
无论如何,我希望得到有关这方面的反馈意见。