Questo javascript
function test() {arr = 111; return arr;};
test();
chiama il metodo test()
, ma non fa nulla con il risultato, vale a dire. non lo restituisce al chiamante.
Così
int a = (Integer) js.executeScript(testJS);
torneranno null
e cercare di essere dereferenziati che non riuscirà a causa dereferenziazione null
getta NullPointerException
.
Javadoc per JavascriptExecutor.html#executeScript(java.lang.String, java.lang.Object...)
Forse si desidera che il javascript
function test() {arr = 111; return arr;};
return test();
Questo funziona per me
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);
fonte
2013-08-29 21:04:02
Cosa restituisce 'js.executeScript()'? Javadoc dice chiaramente 'Uno di Boolean, Long, String, List o WebElement. O null. –
questo dove (ultima riga) il suo errore di annullamento del punto nullo – Sudhakar