我想在“父”测试结束时运行“子”测试,如果没有设置标志skipReset
,该测试将清除会话cookie。此外,我想运行一个“祖父母”测试,该测试调用“父母”测试并设置skipReset = true
,这应使“子”测试跳过重置并因此保留会话数据(请参见打印屏幕)。
但是,如果“孩子”测试是从没有设置标志skipReset
的父母那里运行的,则测试失败。
我想这样做,因此不必将“父级”测试复制粘贴到“重父级”测试中(会话重置行除外)。有没有办法做到这一点?
答案 0 :(得分:1)
所以我找到了一种适用于预期用途的解决方法。
我在“祖父母”测试中设置了一个JavaScript sessionStorage变量,并在“子”测试中检查了该JavaScript sessionStorage变量是否不是未定义和正确的。
在设置sessionStorage变量之前,请确保打开一个页面,这样在每次页面更改后它都将保持不变。查看祖父母和子女测试的打印屏幕。
父级测试仅包含以下代码:
open | /other-page
run | Reset session // Child test
通过这种方式,“子”测试仅在链中没有测试定义JavaScript变量skipReset
的情况下执行重置代码。
答案 1 :(得分:0)
您可以创建一个虚拟网页,其中包含用于交换此信息的虚拟文本字段。 “祖父母”脚本使用TYPE
填写表格,孩子使用store value读取表格。然后你可以做一个
If | ${value_from_field} = "skipReset" ...
或者:在Selenium IDE++(一个不同的项目)中,您可以使用csvSave
和csvRead
命令来exchange this information。
答案 2 :(得分:0)
if "${skipReset}" == "$" + "{skipReset}"
只需使用字符串比较,IDE中的unset变量就意味着没有任何替代,因此它在编写时只是保留了一点('$ {skipReset}')。
答案 3 :(得分:0)
我将此类变量设置为“ 1”,以了解“子”功能是否应运行。如果变量未定义或为'0',则'child'函数将无法运行。
store | 1 | flag or store | 0 | flag
if | ${flag} == 1|
code here...
end| |