2013-02-07 42 views
1

我想在Selenium IDE(Firefox)中使用命令“assertTextPresent”。我将其配置是这样的:Selenium IDE commnand 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) 

从我可以告诉,硒不匹配我的“目标”与渲染页面的,因为在它的HTML代码的源代码。所以它总是失败,即使它应该通过。我怎样才能做出这个断言的工作?

回答

1

assertTextPresent寻找一个值,您指定的值位于页面上的任何位置。您在目标中传递的值是IDE正在查找的文本。它实际上是寻找整个<th>标签作为“文本”显示在页面上的某个地方,我假设它不显示。

使用该功能的正确方法是将您正在寻找的文本传递给目标,例如“Mon”或您正在寻找的任何东西。请记住,这是区分大小写的。由于这个函数并不在乎它的外观,所以你没有指定一个实际的目标。我发现在大多数情况下,这个功能通常没有足够的可靠性。

<tr> 
    <td>assertTextPresent</td> 
    <td>Mon</td> 
    <td></td> 
</tr> 

我更喜欢使用assertTextverifyText,因为它需要一个目标,让您更具体在哪里查找文本。

<tr> 
    <td>assertText</td> 
    <td>css=th[abbr="Monday"]</td> 
    <td>Mon</td> 
</tr> 

我不完全确定abbr属性是一个有效的选择器。有很多方法来定位你的元素,我只是用它作为一个简单的例子,因为它是你snippit的一部分。

+0

从Selenium ID 2.4开始,这将不再起作用。您正在使用assertTextPresent搜索的文本必须进入值字段而不是目标字段。此外,asserTextPresent已弃用,未来版本可能不支持。 –

0

根据我在这里看到的,您应该使用assertElementPresent而不是assertTextPresent,因为您将元素指定为目标而不仅仅是该元素的文本。

如果您仍想使用assertTextPresent,您只需将“Mon”作为您的目标。因为它的目标/参数是它正在搜索的内容。

+1

这是不正确的。从Selenium 2.x开始,您不能将文本放入目标中,否则会失败。请参阅我上面对我的回答的评论。 –

+0

@CharlestonSoftwareAssociates你可以看到我在2月发布了这个版本,并且当时没有使用Selenium 2.x。这将适用于以前版本的硒。 – OrwellHindenberg

2

如果你正在测试一个独特的存在于网页文本可以使用

Command: assertTextPresent 
Target: your search text 

在这里的目标你把你要搜索的文本。

或者

如果要检查当前的位置文本

可以使用

Command: verifyText 
Target: id,name,xpath of the position 
value: your search text 
0

你可能想要3份为assertTextPresent测试:

Command: assertTextPresent 
Target: //th[@abbr="Monday"] 
Value: Mon 

这将查看包含等于“星期一”的atabute @abbr的单元格,并查看内容(文本)是否设置为“Mon”。

要测试所有单元格,您可以一次接一个地执行多个assertTextPresent命令来测试所有7天。

如果你想去“升一级”,你会做这样的事情:

Command: assertTextPresent 
Target: //tr 
Value: <th align="center" abbr="Monday" scope="col" style="background-color:#EFEDF5;font-weight:normal;">Mon</th><th align="center" abbr="Tuesday" (truncated for brevity) 

一般而言,这是最好的尝试通过使用特定的属性,如ID选择HTML元素,比如= “row_1”或name =“first_row”。那么你的目标是// tr [@ id =“row_1”]或// tr [@ name =“first_row”]。

目标是“DOM搜索语法”来告诉Selenium IDE在哪里可以找到您要查找的文本。值是要测试的文本。

+0

从Selenium 2.x开始,您必须使用上述格式。你不能把你正在寻找的文本作为目标。但是,您可以将目标空白。在这两种情况下,您搜索的文本都必须放入Selenium IDE的值组件中。 –