是否可以在Selenium JavascriptExecutor中修改Java变量的值?
我知道可以在JavascriptExecutor中以'"+myjavavar+"'
的形式访问Java变量,但是我们如何修改它?
如果我使用'"+myjavavar+"'= somenewvalue;
,则会失败并显示错误"invalid assignment left-hand side"
。
答案 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);