Hi. I'm recently encountering this error and I've read what other people have posted about it, but I don't think the same thing is happening to me.
What happens is that as soon as a file is selected, the input element is removed. This throws the error. The main problem is that I can't catch the exception. Or I don't know how, I'd appreciate any advice specifically on that. Even if I wrap everything in a try the exception is thrown outside of that. This also happens with firefox.
Here is my html and clj code.
<html>
<script type="text/javascript" src="jquery-2.1.1.min.js"></script>
<div id="uploader">
<input type="file" id="fileInput" />
</div>
<script type="text/javascript">
$(document).ready(function(){
$("#fileInput").change(function(){
$("#fileInput").remove();
$("#uploader").text("Uploading");
});
});
</script>
</html>
(defn lets-error []
(taxi/set-driver! {:browser :chrome} "uploadfile.html")
(let [file-select (taxi/find-element {:tag :input :id "fileInput"})]
(taxi/send-keys file-select "sometext.txt"))
)
org.openqa.selenium.StaleElementReferenceException: stale element reference: element is not attached to the page document
(Session info: chrome=37.0.2062.120)
(Driver info: chromedriver=2.9.248304,platform=Linux 3.13.0-36-generic x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 10 milliseconds
For documentation on this error, please visit:
http://seleniumhq.org/exceptions/stale_element_reference.htmlBuild info: version: '2.39.0', revision: '14fa800511cc5d66d426e08b0b2ab926c7ed7398', time: '2013-12-16 13:18:38'
System info: host: 'mdlsqrty3', ip: '127.0.1.1',
os.name: 'Linux', os.arch: 'amd64', os.version: '3.13.0-36-generic', java.version: '1.7.0_65'
Session ID: f41b77cd7cb78784029900f6158fbdc0
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{platform=LINUX, acceptSslCerts=true, javascriptEnabled=true, browserName=chrome, chrome={userDataDir=/tmp/.com.google.Chrome.q1bbei}, rotatable=false, locationContextEnabled=true, version=37.0.2062.120, takesHeapSnapshot=true, cssSelectorsEnabled=true, databaseEnabled=false, handlesAlerts=true, browserConnectionEnabled=false, nativeEvents=true, webStorageEnabled=true, applicationCacheEnabled=false, takesScreenshot=true}]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (NativeConstructorAccessorImpl.java:-2)
sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:57)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45)
java.lang.reflect.Constructor.newInstance (Constructor.java:526)
org.openqa.selenium.remote.ErrorHandler.createThrowable (ErrorHandler.java:193)
org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed (ErrorHandler.java:145)
org.openqa.selenium.remote.RemoteWebDriver.execute (RemoteWebDriver.java:554)
org.openqa.selenium.remote.RemoteWebElement.execute (RemoteWebElement.java:268)
org.openqa.selenium.remote.RemoteWebElement.getTagName (RemoteWebElement.java:117)
sun.reflect.NativeMethodAccessorImpl.invoke0 (NativeMethodAccessorImpl.java:-2)
sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke (Method.java:606)
clojure.lang.Reflector.invokeMatchingMethod (Reflector.java:93)
clojure.lang.Reflector.invokeNoArgInstanceMember (Reflector.java:313)
clj_webdriver.util/fn (util.clj:259)
clojure.lang.MultiFn.invoke (MultiFn.java:231)
clojure.core$pr_on.invoke (core.clj:3392)
clojure.core$print_map$fn__5479.invoke (core_print.clj:204)
clojure.core$print_sequential.invoke (core_print.clj:53)
clojure.core$print_map.invoke (core_print.clj:207)
clojure.core/fn (core_print.clj:264)
clojure.lang.MultiFn.invoke (MultiFn.java:231)
clojure.core$pr_on.invoke (core.clj:3392)
clojure.core$pr.invoke (core.clj:3404)
clojure.tools.nrepl.middleware.pr_values$pr_values$fn$reify__718$fn__720.invoke (pr_values.clj:23)
clojure.tools.nrepl.middleware.pr_values$pr_values$fn$reify__718.send (pr_values.clj:23)
clojure.tools.nrepl.middleware.interruptible_eval$evaluate$fn__739$fn__750.invoke (interruptible_eval.clj:67)
clojure.main$repl$read_eval_print__6625.invoke (main.clj:240)
clojure.main$repl$fn__6634.invoke (main.clj:257)
clojure.main$repl.doInvoke (main.clj:257)
clojure.lang.RestFn.invoke (RestFn.java:1096)
clojure.tools.nrepl.middleware.interruptible_eval$evaluate$fn__739.invoke (interruptible_eval.clj:56)
clojure.lang.AFn.applyToHelper (AFn.java:152)
clojure.lang.AFn.applyTo (AFn.java:144)
clojure.core$apply.invoke (core.clj:624)
clojure.core$with_bindings_STAR_.doInvoke (core.clj:1862)
clojure.lang.RestFn.invoke (RestFn.java:425)
clojure.tools.nrepl.middleware.interruptible_eval$evaluate.invoke (interruptible_eval.clj:41)
clojure.tools.nrepl.middleware.interruptible_eval$interruptible_eval$fn__780$fn__783.invoke (interruptible_eval.clj:171)
clojure.core$comp$fn__4192.invoke (core.clj:2402)
clojure.tools.nrepl.middleware.interruptible_eval$run_next$fn__773.invoke (interruptible_eval.clj:138)
clojure.lang.AFn.run (AFn.java:22)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1145)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:615)
java.lang.Thread.run (Thread.java:745)