2012-01-03 25 views
1

私は自動化スクリプトを作成していますが、コンテンツを検証するためにiframeからデータを読み取る必要があります。私のJavaコードでTypeError:オブジェクト内にgetElementById関数が見つかりません

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) in at line number 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:
Cannot find function getElementById in object [object Object]. (#4) in at line number 4

提案して下さいです。

+0

ウェブブラウザではこれを実行しない可能性があるため、ドキュメントやウィンドウはありません。 –

+0

実際にセレンに取り組んでいます。 Webブラウザを使用していますが、少数の機能しか有効にしていません。これにはどんな解決策がありますか? –

+0

申し訳ありませんが、確かに1つのことは、薄い空気からドキュメントを作成することはできません。 –

答えて

0

私はあなたが文を必要としないと思います。var document = new Object(); コードはこのステートメントなしで動作します。

+0

いいえ、そうではありません。前に説明したように、var document = new Object();がなくても、 "javax.script.ScriptException:sun.org.mozilla.javascript.internal.EcmaError:ReferenceError:" document "が定義されていません。 )in line number 3 " –

関連する問題