在 JavascriptExecutor 中修改 Java 变量

Modify Java variable within JavascriptExecutor

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

我知道可以像 '"+myjavavar+"' 一样访问 JavascriptExecutor 中的 Java 变量,但我们如何修改它?

如果我使用 '"+myjavavar+"'= somenewvalue; 它会失败并出现错误 "invalid assignment left-hand side"

您可以通过 JavascriptExecutor 获取和设置 javascript 变量。要在测试会话期间在您执行的每个脚本中使用 "global" 变量,请将其保留在 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);