我正在尝试在 Selenium IDE (Firefox) 中使用命令“assertTextPresent”。我是这样配置的:
Command: assertTextPresent
Target: <th align="center" abbr="Monday" scope="col" style="background-color:#EFEDF5;font-weight:normal;">Mon</th><th align="center" abbr="Tuesday" (truncated for brevity)
Value: (left empty)
据我所知,Selenium 没有将我的“目标”与渲染页面的源相匹配,因为其中包含 HTML 代码。所以即使应该通过,它总是失败。我怎样才能使这个断言起作用?
最佳答案
assertTextPresent
查找您指定位于页面上任意位置的值。您在目标中传递的值是 IDE 正在查找的文本。它实际上是在寻找整个 <th>
标记为“文本”显示在页面上的某处,我假设它没有显示。
使用该函数的正确方法是传递您在目标中查找的文本,例如“Mon”或您要查找的任何内容。请记住,这是区分大小写的。由于此函数不关心它的外观,因此您无需指定实际目标。我发现在大多数情况下,这个函数通常没有足够的特异性来可靠。
<tr>
<td>assertTextPresent</td>
<td>Mon</td>
<td></td>
</tr>
我更喜欢使用assertText
或verifyText
因为它需要一个目标,让您可以更具体地查找文本的位置。
<tr>
<td>assertText</td>
<td>css=th[abbr="Monday"]</td>
<td>Mon</td>
</tr>
我不完全确定abbr
属性将是一个有效的选择器。有很多方法可以定位您的元素,我只是将其用作一个简单的示例,因为它是您的代码片段的一部分。
关于Selenium IDE 命令和assertTextPresent 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14756685/