控制流
Selenium IDE 附带的命令使您能够向测试中添加条件逻辑和循环。
这使您能够仅在应用程序中满足特定条件时执行命令(或一组命令),或根据预定义的条件重复执行命令。
JavaScript 表达式
使用 JavaScript 表达式检查应用程序中的条件。
您可以在测试期间的任何时间使用 execute script
或 execute async script
命令来运行 JavaScript 代码段,并将结果存储在变量中。这些变量可以在控制流命令中使用。
您还可以在控制流命令中直接使用 JavaScript 表达式。
可用命令
控制流命令通过指定打开和关闭命令来表示一组(或块)命令。
以下是每个可用的控制流命令及其伴随和/或关闭命令。
if
、else if
、else
、end
times
、end
do
、repeat if
while
、end
我们来逐步了解每个示例。
条件分支
条件分支使您能够更改测试中的行为。
if
这是条件块的开始命令。
与它一起,您提供了一个您想要评估的 JavaScript 表达式。这可以由测试中先前 JavaScript 表达式创建的变量组成。所有这些都放在 if
命令的 target
输入字段中。
如果表达式的值为 true
,则测试将执行紧随其后的命令,直到下一个条件控制流命令(例如,else if
、else
或 end
)。
如果表达式的值为 false
,它将跳过紧随其后的命令,并跳转到下一个相关的条件控制流命令(例如,else if
、else
或 end
)。
else if
此命令用于 if
命令块内。
与 if
一样,它在 target
输入字段中采用 JavaScript 表达式进行评估,执行其后的命令分支,或跳至下一个相关的控制流命令(例如,else
或 end
)。
else
else
是 if
块中可以设置的最终条件。当未满足任何先前的条件时,将执行此命令分支。
完成后,它将跳转到 end
命令。
end
此命令终止条件命令块。如果没有此命令,命令块将不完整,并且在尝试运行测试时,您会收到一条有用的错误消息,告知您这一点。
循环
循环使您能够迭代给定的一组命令。
times
使用 times
,您可以指定要执行一组命令的迭代次数。该数字进入 times
命令的 target
输入字段。
要关闭 times
命令块,请务必使用 end
命令。
do
使用 do
命令开始此循环,然后是您想要执行的命令,并以 repeat if
命令结束。repeat if
采用您希望在 target
输入字段中求值的 JavaScript 表达式。
do
之后的命令将首先执行,然后将评估 repeat if
中的表达式。如果表达式返回 true
,则测试将跳回 do
命令并重复该序列。
这将持续到条件返回 false
或触发无限循环保护 -- 默认为 1000
次尝试。您可以通过在 repeat if
命令的 value
输入字段中指定一个数字来覆盖此默认设置。
while
使用 while
时,您提供一个 JavaScript 表达式,您希望在 target
输入字段中对其进行评估。如果它评估为 true
,则随后的命令块将执行,直到它到达 end
命令。
完成后,测试将跳回 while
命令并重复相同的序列(首先检查条件是否评估为 true
或 false
)。
要关闭 while
命令块,请使用 end
命令。
循环将重试,直到条件返回 false
或触发无限循环保护 -- 其默认为 1000
次尝试。您可以通过在 while
命令的 value
输入字段中指定一个数字来覆盖此默认值。
forEach
最后保留最好的,我们有能力遍历集合(例如,JS 数组),并在遍历时引用集合中的每个项目。
在 target
字段中,您指定包含要遍历的数组的变量的名称。在 value
字段中,您指定要使用的迭代器变量的名称。对于数组中的每个条目,将执行随后的命令。在每次迭代期间,可以通过迭代器变量访问当前条目的内容。
嵌套命令
您可以根据需要嵌套控制流命令(例如,if
块可以进入 while
块,反之亦然)。
语法验证
如果您不确定您的控制流语法是否正确,请尝试运行您的测试以查看。IDE 将发现控制流语法中的错误,并指出不正确或缺少的特定命令。