executeScript(selenium web driver)方法无法定义全局变量供以后使用?

时间:2012-12-13 10:42:24

标签: selenium selenium-webdriver selenium-chromedriver

我在selenium web驱动程序中使用方法executeScript,我发现了一个问题:

js.executeScript("var b='1'; ");
js.executeScript("alert(b)");

在我运行上面的代码之后,我想会得到一个值为1的警告窗口,但它说:

b is not defined

我的问题是:我将b定义为全局变量,但为什么我以后无法得到它?

1 个答案:

答案 0 :(得分:7)

将变量定义为

var b='1'

将范围限制为脚本的执行。 Selenium将javascript片段的执行包装到他们自己的脚本中,因此您的变量不会在脚本结束时存活。尝试

window.b = '1';

然后再

alert(window.b);

将变量放入全局范围。