js.executeScript("return document.title")可以按预期工作,但是我不确定为什么我的代码返回空指针错误。这是怎么了
js.executeScript("return document.title")
String testJs= "function test() {arr = 111; return arr;}; test();"; JavascriptExecutor js = (JavascriptExecutor) driver; int a = (Integer) js.executeScript(testJS);
这个javascript
function test() {arr = 111; return arr;}; test();
调用方法,test()但对结果不执行任何操作,即。不会将其返回给调用方。
test()
所以
int a = (Integer) js.executeScript(testJS);
将返回null并尝试被取消引用,这将因为取消引用null引发而失败NullPointerException。
null
NullPointerException
Javadoc的JavascriptExecutor.html#executeScript(java.lang.String, java.lang.Object...)
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);