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

Rya*_*yan 4 selenium selenium-chromedriver selenium-webdriver

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

js.executeScript("var b='1'; ");
js.executeScript("alert(b)");
Run Code Online (Sandbox Code Playgroud)

在我运行上面的代码后,我想有一个值为的警报窗口1,但它说:

b is not defined
Run Code Online (Sandbox Code Playgroud)

我的问题是:我定义b为一个全局变量,但为什么我以后不能得到它?

Val*_*tin 11

将变量定义为

var b='1'
Run Code Online (Sandbox Code Playgroud)

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

window.b = '1';
Run Code Online (Sandbox Code Playgroud)

然后是

alert(window.b);
Run Code Online (Sandbox Code Playgroud)

将变量放入全局范围.