【问题标题】:Selenium IDE: How to verify <TD> Contents when it contains a mix of tags and <BR> breaksSelenium IDE:如何在 <TD> 包含混合标签和 <BR> 中断时验证内容
【发布时间】:2015-05-09 05:05:06
【问题描述】:

我的目标是验证一个复杂的 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 中使用其他方法。如果我可以在不删除换行符的情况下以某种方式验证单元格内容,那对我来说很好。

【问题讨论】:

    标签: javascript selenium ide newline


    【解决方案1】:

    我在回答这个问题时做了一些假设。听起来您的目标是验证 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 对我有效,但如果提供了实际的底层字符串,则会失败。

    无论如何,如果您能就这方面的情况提供反馈意见,我将不胜感激。

    【讨论】:

      猜你喜欢
      • 2014-11-14
      • 1970-01-01
      • 2015-05-11
      • 2018-01-17
      • 1970-01-01
      • 2013-09-09
      • 2010-11-21
      • 1970-01-01
      • 2014-10-20
      相关资源
      最近更新 更多