1

我正在编写自动化脚本,我需要从 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:“文档”未定义。(#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 行

请提出建议。

4

1 回答 1

0

我认为您不需要语句var document = new Object(); 您的代码应该可以在没有此语句的情况下工作。

于 2012-01-03T11:17:26.043 回答