我正在尝试在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)
据我所知,由于其中的HTML代码,Selenium不会将我的“目标”与呈现页面的源匹配。所以它总是会失败,即使它应该通过。我怎样才能使这个断言起作用?
答案 0 :(得分:2)
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
属性是有效的选择器。有很多方法可以定位你的元素,我只是用它作为一个简单的例子,因为它是你的snippit的一部分。
答案 1 :(得分:2)
如果您正在测试页面中存在的唯一文本,则可以使用
Command: assertTextPresent
Target: your search text
在目标中,您可以放置要搜索的文本。
或
如果您想检查您可以使用的位置上的文字
Command: verifyText
Target: id,name,xpath of the position
value: your search text
答案 2 :(得分:0)
根据我在此处看到的内容,您应该使用assertElementPresent
而不是assertTextPresent
,因为您指定了一个元素作为目标,而不仅仅是<th>
元素的文本。 / p>
如果您仍想使用assertTextPresent
,您只需将“星期一”作为目标即可。因为它的目标/参数是它正在搜索的内容。
答案 3 :(得分:0)
您可能需要3个部分进行assertTextPresent测试:
Command: assertTextPresent
Target: //th[@abbr="Monday"]
Value: Mon
这将查看包含attriute @abbr等于“Monday”的单元格,并查看内容(文本)是否设置为“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)
通常最好尝试选择HTML元素,例如使用特定属性,例如id =“row_1”或name =“first_row”。然后你的目标是// tr [@ id =“row_1”]或// tr [@ name =“first_row”]。
Target是“DOM搜索语法”,用于告诉Selenium IDE在哪里可以找到您要查找的文本。值是要测试的文本。