这个 javascript
function test() {arr = 111; return arr;};
test();
调用方法test()
但不对结果做任何事情,即。不会将其返回给调用者。
所以
int a = (Integer) js.executeScript(testJS);
将返回null
并尝试取消引用,这将失败,因为取消引用null
throws NullPointerException
。
Javadoc用于JavascriptExecutor.html#executeScript(java.lang.String, java.lang.Object...)
也许你想要 javascript
function test() {arr = 111; return arr;};
return test();
这对我有用
System.setProperty("webdriver.chrome.driver", "C:\\Users\\me\\Downloads\\chromedriver.exe");
ChromeDriver driver = new ChromeDriver();
JavascriptExecutor executor = (JavascriptExecutor) driver;
String js = "function test() {" +
"arr = 111; return arr;" +
"}; return test()";
Long a = (Long) executor.executeScript(js);
System.out.println(a);