2017-08-10 37 views
1

發送多個文件的HtmlUnit和Java工作,我想通過這個元素來發送一些文件:從HTML輸入從Java

<input type="file" multiple="multiple" class="dz-hidden-input" accept="image/jpeg, image/gif ,image/png" style="visibility: hidden; position: absolute; top: 0px; left: 0px; height: 0px; width: 0px;"> 

它來自懸浮窗JavaScript庫wchich爲了管理創建這個隱藏的HTML元素文件上傳。

我已經試過(除其他事項外)這一個:

File fileToUpload = new File("C:\\image.jpg"); 
HtmlFileInput fileUploader = (HtmlFileInput) currentPage.getFirstByXPath("//input[@type='file']"); 

fileUploader.setFiles(fileToUpload); 

但與此異常這使我確信這是不進行的方式,任何提示悲慘的失敗了?

GRAVE: Job run failed with unexpected RuntimeException: TypeError: Cannot find function readAsDataURL in object [object FileReader]. (https://static.milanuncios.com/js/fotos/dropzone.4.2.0.min.js#1) 
    ======= EXCEPTION START ======== 
    EcmaError: lineNumber=[1] column=[0] lineSource=[ function() {] name= 
    [TypeError] sourceName= 
    [https://static.milanuncios.com/js/fotos/dropzone.4.2.0.min.js] message=[TypeError: Cannot find function readAsDataURL in object [object FileReader]. (https://static.milanuncios.com/js/fotos/dropzone.4.2.0.min.js#1)] 
com.gargoylesoftware.htmlunit.ScriptException: TypeError: Cannot find function readAsDataURL in object [object FileReader]. (https://static.milanuncios.com/js/fotos/dropzone.4.2.0.min.js#1) 
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:894) 
    at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:637) 
    at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:518) 
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:823) 
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:795) 
    at com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScriptFunction(HtmlPage.java:2504) 
    at com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScriptFunction(HtmlPage.java:2497) 
    at com.gargoylesoftware.htmlunit.javascript.background.JavaScriptFunctionJob.runJavaScript(JavaScriptFunctionJob.java:52) 
    at com.gargoylesoftware.htmlunit.javascript.background.JavaScriptExecutionJob.run(JavaScriptExecutionJob.java:102) 
    at com.gargoylesoftware.htmlunit.javascript.background.JavaScriptJobManagerImpl.runSingleJob(JavaScriptJobManagerImpl.java:424) 
    at com.gargoylesoftware.htmlunit.javascript.background.DefaultJavaScriptExecutor.run(DefaultJavaScriptExecutor.java:155) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: net.sourceforge.htmlunit.corejs.javascript.EcmaError: TypeError: Cannot find function readAsDataURL in object [object FileReader]. (https://static.milanuncios.com/js/fotos/dropzone.4.2.0.min.js#1) 
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3915) 
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3899) 
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3924) 
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.typeError2(ScriptRuntime.java:3940) 
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.notFunctionError(ScriptRuntime.java:4007) 
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.getPropFunctionAndThisHelper(ScriptRuntime.java:2402) 
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.getPropFunctionAndThis(ScriptRuntime.java:2384) 
    at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:1348) 
    at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpret(Interpreter.java:800) 
    at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:105) 
    at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.doTopCall(ContextFactory.java:416) 
    at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:322) 
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3264) 
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$4.doRun(JavaScriptEngine.java:816) 
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:879) 
    ... 11 more 
Enclosed exception: 
net.sourceforge.htmlunit.corejs.javascript.EcmaError: TypeError: Cannot find function readAsDataURL in object [object FileReader]. (https://static.milanuncios.com/js/fotos/dropzone.4.2.0.min.js#1) 
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3915) 
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3899) 
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3924) 
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.typeError2(ScriptRuntime.java:3940) 
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.notFunctionError(ScriptRuntime.java:4007) 
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.getPropFunctionAndThisHelper(ScriptRuntime.java:2402) 
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.getPropFunctionAndThis(ScriptRuntime.java:2384) 
    at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:1348) 
    at script(https://static.milanuncios.com/js/fotos/dropzone.4.2.0.min.js:1) 
    at script(https://static.milanuncios.com/js/fotos/dropzone.4.2.0.min.js:1) 
    at script(https://static.milanuncios.com/js/fotos/dropzone.4.2.0.min.js:1) 
    at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpret(Interpreter.java:800) 
    at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:105) 
    at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.doTopCall(ContextFactory.java:416) 
    at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:322) 
    at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3264) 
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$4.doRun(JavaScriptEngine.java:816) 
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:879) 
    at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:637) 
    at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:518) 
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:823) 
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:795) 
    at com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScriptFunction(HtmlPage.java:2504) 
    at com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScriptFunction(HtmlPage.java:2497) 
    at com.gargoylesoftware.htmlunit.javascript.background.JavaScriptFunctionJob.runJavaScript(JavaScriptFunctionJob.java:52) 
    at com.gargoylesoftware.htmlunit.javascript.background.JavaScriptExecutionJob.run(JavaScriptExecutionJob.java:102) 
    at com.gargoylesoftware.htmlunit.javascript.background.JavaScriptJobManagerImpl.runSingleJob(JavaScriptJobManagerImpl.java:424) 
    at com.gargoylesoftware.htmlunit.javascript.background.DefaultJavaScriptExecutor.run(DefaultJavaScriptExecutor.java:155) 
    at java.lang.Thread.run(Unknown Source) 
== CALLING JAVASCRIPT == 
    function() { 
     return a._processThumbnailQueue(); 
    } 
======= EXCEPTION END ======== 

回答

2

已經有一個Issue開放。這方面的工作已經開始。請檢查問題的進度。

2

感謝報告,它已在SVN中實施。

您可以使用latest build或maven快照。