使用HTMLUnit访问JavaScript变量

使用HTMLUnit访问JavaScript变量,java,javascript,html,htmlunit,Java,Javascript,Html,Htmlunit,如何使用HTMLUnitframework从JavaScript变量中获取值?就像我有var-important=“level-important words”一样,我想要得到这个字符串。如果变量的作用域是globall,我会尝试使用函数 但如果变量不是全局作用域,我认为您运气不好: (function(){ var important = "Few important words"; // ... }()); 在这种情况下,您可能必须依靠屏幕抓取或实际解析HTML/JavaS

如何使用
HTMLUnit
framework从JavaScript变量中获取值?就像我有
var-important=“level-important words”
一样,我想要得到这个字符串。

如果变量的作用域是globall,我会尝试使用函数

但如果变量不是全局作用域,我认为您运气不好:

(function(){
    var important = "Few important words";
    // ...
}());
在这种情况下,您可能必须依靠屏幕抓取或实际解析HTML/JavaScript来提取信息。祝你好运


另请参见-这个问题是关于Python的,但最终的答案是“使用正则表达式”-它似乎可以在Java中工作,但是如果您没有其他选项…

我明白了,但是当我使用
System.out.println(page.executeJavaScript(“mobile”).toString()时
I get
ScriptResult[result=null page=HtmlPage(*url已被我删除*)@1990889081]
。我该怎么办?在执行
警报时(窗口[“移动])
在Google Chrome中有一个具有正确值的窗口。顺便说一句,它是一个对象,我以前没有提到过它。
executeJavaScript(…)
的返回类型是。阅读
ScriptResult
的API!也许
getJavaScriptResult().toString()
会给出更好的结果。..toString()将整个对象表示为字符串,所以值为“null”,这意味着什么也没有。遗憾的是,使用
getJavaScriptResult
也没有帮助。我想
mobile
是您试图访问的变量吗?也许
page.executeJavaScript(“return-mobile”).getJavaScriptResult().toString()
-我假设为了
getJavaScriptResult
返回非空值,JS代码段必须返回一个值。使用
System.out.println(page.executeJavaScript(“return-mobile”).getJavaScriptResult())在控制台中给出“null”。使用
.toString()
我得到了NullPointerException。是的,mobile是一个布尔变量(我首先尝试从简单类型中获取值,然后我将使用objectone)。