From: Ronald B. <rb...@rb...> - 2017-08-10 17:46:24
|
Right, seems the method is missing at the moment. Please open an issue.... RBRi On Thu, 10 Aug 2017 18:46:22 +0200 José Román | Idiria S.L. wrote: > >Well it seems I though it was done too soon. It fails here: > > File fileToUpload = new File("C:\firma.jpg"); > HtmlFileInput fileUploader = (HtmlFileInput) >currentPage.getFirstByXPath("//input[@type='file']"); > > fileUploader.setFiles(fileToUpload); --> This causes the exception > >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 ======== > > > > > > >2017-08-10 9:26 GMT+02:00 Ronald Brill <rb...@rb...>: > >> On Wed, 9 Aug 2017 18:58:31 +0200 José Román | Idiria S.L. wrote: >> > >> >1.- Open the selection dialog (or simulate it). >> >2.- Make JS process the selected files. >> > >> Without have access to the real page an answer is not that simple. >> >> >1.- Open the selection dialog (or simulate it). >> Usuall there is a input control with type 'file' somewhere on the page. >> This is more or less the only way to add files to a form to upload them. >> You have to find that control >> and use setValueAttribute with the absolute path of the file. >> >> >2.- Make JS process the selected files. >> As always there is nothing special - there is no need to deal with the js >> itselt. Simply do the same you do in the real browser e.g. click the submit >> button. HtmlUnit tries to do >> exactyl the same js processing as real browsers. >> >> >> RBRi >> -------------------------- >> WETATOR >> Smart web application testing >> http://www.wetator.org >> >> ------------------------------------------------------------ >> ------------------ >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, Slashdot.org! http://sdm.link/slashdot >> _______________________________________________ >> Htmlunit-user mailing list >> Htm...@li... >> https://lists.sourceforge.net/lists/listinfo/htmlunit-user >> > > > |