Ten javascript
function test() {arr = 111; return arr;};
test();
wywołuje metodę test()
lecz nic z tego wyniku, czyli nie. nie zwraca go do dzwoniącego.
Więc
int a = (Integer) js.executeScript(testJS);
powróci null
i starają się być dereferencjonowane który zawiedzie bo dereferencing null
rzuca NullPointerException
.
Javadoc dla JavascriptExecutor.html#executeScript(java.lang.String, java.lang.Object...)
Może chcesz javascript
function test() {arr = 111; return arr;};
return test();
Działa to dla mnie
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);
Co zwróci 'js.executeScript()'? Javadoc wyraźnie mówi "Jeden z Boolean, Long, String, List lub WebElement. Lub null ". –
thats gdzie (ostatnia linia) jego błąd wyrzucania nullpointer – Sudhakar