在JavascriptExecutor中修改Java变量

时间:2015-05-14 11:26:13

标签: java javascript variables selenium selenium-webdriver

是否可以在Selenium JavascriptExecutor中修改Java变量的值?

我知道可以在JavascriptExecutor中以'"+myjavavar+"'的形式访问Java变量,但是我们如何修改它?

如果我使用'"+myjavavar+"'= somenewvalue;,则会失败并显示错误"invalid assignment left-hand side"

1 个答案:

答案 0 :(得分:2)

您可以通过JavascriptExecutor获取和设置javascript变量。要在您执行的每个脚本中提供测试会话期间的“全局”变量,请将其保留在global window object上。例如:

JavascriptExecutor js = (JavascriptExecutor) driver;

// set the value (note how the arguments are passed into)
js.executeScript("window.myvar = arguments[0];", "Test");

// get the value (note the "return")
String myvar = (String) js.executeScript("return window.myvar;");
System.out.println(myvar);