我正在进行自动化脚本编写,我需要从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”。 (#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.mozilla.javascript.internal.EcmaError:TypeError:
在对象[object Object]中找不到函数getElementById。 (#4)在第4行
建议请。
答案 0 :(得分:0)
我认为您不需要语句 var document = new Object(); 你的代码应该没有这个声明。