Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将Selenium IDE中未定义的变量用于if条件_Javascript_Integration Testing_Selenium Ide - Fatal编程技术网

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| |

现在您也有同样的问题,如果未定义标志,测试将失败。