在 if 条件下使用 Selenium IDE 中的未定义变量
Use undefined variables in Selenium IDE for if condition
我想 运行 在 "parent" 测试结束时进行 "child" 测试,如果未设置标志 skipReset
则清除会话 cookie。此外,我想 运行 调用 "parent" 测试并设置 skipReset = true
的 "grandparent" 测试,这应该使 "child" 测试跳过重置,因此保留会话数据(参见打印屏幕)。
但是,如果 "child" 测试来自未设置标志 skipReset
的父项 运行,则测试失败。
我想这样做,这样 "parent" 测试就不必复制粘贴到 "grand parent" 测试中,不包括会话重置行。有办法实现吗?
所以我找到了一个适用于预期用途的解决方法。
我在 "grandparent" 测试中设置了一个 JavaScript sessionStorage 变量,并在 "child" 测试中检查 JavaScript sessionStorage 变量是否未定义且正确。
确保在设置 sessionStorage 变量之前打开一个页面,以便它在每次页面更改时保持不变。查看 grandparent 和 child 测试的打印屏幕。
parent测试只包含以下代码:
open | /other-page
run | Reset session // Child test
这样 "child" 测试仅在链中没有测试定义 JavaScript 变量时才执行重置代码 skipReset
.
if "${skipReset}" == "$" + "{skipReset}"
只需使用字符串比较,IDE 中未设置变量意味着没有任何替换,因此它只保留原样('${skipReset}')。
我在“1”中设置了这样的变量,以了解 'child' 是否应该 运行 起作用。如果变量未定义或为“0”,'child' 函数将不会 运行.
store | 1 | flag or store | 0 | flag
if | ${flag} == 1|
code here...
end| |
我想 运行 在 "parent" 测试结束时进行 "child" 测试,如果未设置标志 skipReset
则清除会话 cookie。此外,我想 运行 调用 "parent" 测试并设置 skipReset = true
的 "grandparent" 测试,这应该使 "child" 测试跳过重置,因此保留会话数据(参见打印屏幕)。
但是,如果 "child" 测试来自未设置标志 skipReset
的父项 运行,则测试失败。
我想这样做,这样 "parent" 测试就不必复制粘贴到 "grand parent" 测试中,不包括会话重置行。有办法实现吗?
所以我找到了一个适用于预期用途的解决方法。
我在 "grandparent" 测试中设置了一个 JavaScript sessionStorage 变量,并在 "child" 测试中检查 JavaScript sessionStorage 变量是否未定义且正确。
确保在设置 sessionStorage 变量之前打开一个页面,以便它在每次页面更改时保持不变。查看 grandparent 和 child 测试的打印屏幕。
parent测试只包含以下代码:
open | /other-page
run | Reset session // Child test
这样 "child" 测试仅在链中没有测试定义 JavaScript 变量时才执行重置代码 skipReset
.
if "${skipReset}" == "$" + "{skipReset}"
只需使用字符串比较,IDE 中未设置变量意味着没有任何替换,因此它只保留原样('${skipReset}')。
我在“1”中设置了这样的变量,以了解 'child' 是否应该 运行 起作用。如果变量未定义或为“0”,'child' 函数将不会 运行.
store | 1 | flag or store | 0 | flag
if | ${flag} == 1|
code here...
end| |