我正在做自动化脚本,我需要从iframe读取数据(以验证内容)。在我的java代码
ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
ScriptEngine scriptEngine = scriptEngineManager.getEngineByName("ECMAScript");
try
{
scriptEngine.eval(new FileReader("readIFrameContent.js"));
}
catch (ScriptException e)
{
e.printStackTrace();
}
和readIFrameContent.js是
function getContentFromIframe(iFrameName)
{
var myIFrame = document.getElementById(iFrameName);
var content = myIFrame.contentWindow.document.body.innerHTML;
alert('content: ' + content);
}
但是我得到一个错误。
javax.script。ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "document" is not defined。(#3)在第3行
所以我在谷歌上搜索了一个解决方案并编辑了函数
function getContentFromIframe(iFrameName)
{
var document = new Object();
var myIFrame = document.getElementById(iFrameName);
var content = myIFrame.contentWindow.document.body.innerHTML;
alert('content: ' + content);
}
,现在错误是
javax.script。ScriptException: sun.org.mozill.javascript .internal. ecmaerror: TypeError:
在object [object object]中找不到getElementById函数。(#4)在第4行
请建议。
我认为您不需要语句var document = new Object();你的代码不需要这个语句也可以工作。