在Se-Builder中,你如何引用存储的变量?

时间:2014-02-07 19:45:45

标签: javascript selenium

我正在使用se-Builder(不是selenium ide)http://sebuilder.github.io/se-builder/

我正在尝试使用assertEval并在javascript行中引用先前存储的变量。

在selenium IDE中,您使用storedVars对象引用它,但以下似乎不起作用。 (我得到一个脚本错误)。我也尝试过返回hw和$ {hw},但似乎没有任何效果。这是文档,似乎没有提到这一点。 https://github.com/sebuilder/se-builder/wiki

store
"HelloWorld"
hw

assertEval
return storedVars['hw'] // this is the problem line
"HelloWorld"

1 个答案:

答案 0 :(得分:2)

我自己想出来了。

eval命令确实将变量插入到eval中:

${var}

符号。

让我搞砸的是它按原样插入所有内容。因此,如果您将一个字符串存储为myText,其值为“some text”,并尝试将其插入到您的javascript中。

var myText = ${myText};

不会插入

var myText = "some text";

因为我错误地假设(这很明显回顾这是一个可怕的假设)。它直接插入:

var myText = some text;

你需要做的是

var myText = "${myText}";

所以结果就像这样:

var myText = "some text";

这给了我很多错误,但没有任何帮助。我知道这个答案似乎很明显,但我发布的答案是万一有人犯了同样的错误。

另一件需要注意的事情是新行将自动插入到js中,这会导致另一个错误。这也发生在我身上。我最终需要存储一个eval,它从我正在寻找的元素中删除所有新行,然后存储该文本。