我正在使用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"
答案 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,它从我正在寻找的元素中删除所有新行,然后存储该文本。