Javascript 将Selenium IDE中未定义的变量用于if条件
我想在“父”测试结束时运行“子”测试,如果未设置标志Javascript 将Selenium IDE中未定义的变量用于if条件,javascript,integration-testing,selenium-ide,Javascript,Integration Testing,Selenium Ide,我想在“父”测试结束时运行“子”测试,如果未设置标志skipReset,该测试将清除会话cookie。此外,我想运行一个“祖父母”测试,调用“父母”测试并设置skipReset=true,这将使“孩子”测试跳过重置,从而保留会话数据(参见打印屏幕) 但是,如果“子”测试是从未设置标志的父级运行的,则测试失败 我希望这样做,这样“父级”测试就不必复制粘贴到“父级”测试中,会话重置行除外。有没有办法做到这一点?所以我找到了一个适合预期用途的解决方法 我在“祖父母”测试中设置了一个JavaScrip
skipReset
,该测试将清除会话cookie。此外,我想运行一个“祖父母”测试,调用“父母”测试并设置skipReset=true
,这将使“孩子”测试跳过重置,从而保留会话数据(参见打印屏幕)
但是,如果“子”测试是从未设置标志的父级运行的,则测试失败
我希望这样做,这样“父级”测试就不必复制粘贴到“父级”测试中,会话重置行除外。有没有办法做到这一点?所以我找到了一个适合预期用途的解决方法 我在“祖父母”测试中设置了一个JavaScript sessionStorage变量,并在“孩子”测试中检查该JavaScript sessionStorage变量是否未定义且正确 在设置sessionStorage变量之前,请确保打开一个页面,以便在每次页面更改过程中保持该页面不变。参见祖父母和孩子测试的打印屏幕 父测试仅包含以下代码:
open | /other-page
run | Reset session // Child test
这样,“子”测试仅在链中没有定义JavaScript变量skipReset
时执行重置代码
if "${skipReset}" == "$" + "{skipReset}"
只需使用字符串比较,IDE中的unset变量意味着不存在任何替换,所以它只是保持编写时的状态(“${skipReset}”) 我在“1”中设置了这样的变量,以知道“child”函数是否应该运行。如果变量未定义或为“0”,则“子”函数将不会运行
store | 1 | flag or store | 0 | flag
if | ${flag} == 1|
code here...
end| |
现在您也有同样的问题,如果未定义标志,测试将失败。