2017-06-21 11 views
1

私はjavaファイルに1つのメソッドを記述し、そのjavaファイルメソッドのヘルプorg.openqa.selenium.JavascriptExecutorでjavaスクリプトファイルに書き込まれた1つのメソッドを呼び出しました。ここでのコードスニペットです:JavaのJavascriptExecutor.executeScript()メソッドから値を返す方法

public void validateFilename() { 
    JavascriptExecutor jsExec = (JavascriptExecutor) webDriver; 
    jsExec.executeScript("getFileName();"); 
} 


function() { 
    window.getFileName = function() { 
     var fileName = "sampleFile.txt"; 
     return fileName; 
    } 
}; 

私はJavaファイルからメソッドgetFileName()を呼び出すことができるが、私は、ファイル名の値を取得することができています。 alert(fileName)にfileNameが表示されていますが、そのメソッドをjavaファイルで返すことはできません。

セレンのAPIを使用してjsファイルからjavaファイルに値を返す方法はありますかJavascriptExecutor

+0

ただ興味があります。なぜ、IIFEで 'getFileName'をラップして' window'に割り当てるのですか? – evolutionxbox

答えて

1

は、あなたが応答を取得しようとしたときに文字列にキャストする必要が

jsExec.executeScript("return getFileName()"); 
+0

私はこのオブジェクトを試しましたo = jsExec.executeScript( "return getFileName()");そこにはヌル値があります –

0

、次のコードを試してみてください。

String fileName = (String) jsExec.executeScript("return getFileName();"); 
関連する問題