When it fails, it's because of org.openqa.selenium.ScriptTimeoutException: script timeout.
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:518)
at org.openqa.selenium.remote.RemoteWebDriver.executeAsyncScript(RemoteWebDriver.java:471)
at com.vaadin.testbench.TestBenchDriverProxy.executeAsyncScript(TestBenchDriverProxy.java:196)
at com.vaadin.testbench.TestBenchDriverProxy_$$_jvstdb6_0._d7executeAsyncScript(TestBenchDriverProxy_$$_jvstdb6_0.java)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at com.vaadin.testbench.DriverInvocationHandler.invoke(DriverInvocationHandler.java:47)
at com.vaadin.testbench.TestBenchDriverProxy_$$_jvstdb6_0.executeAsyncScript(TestBenchDriverProxy_$$_jvstdb6_0.java)
at com.vaadin.flow.component.upload.testbench.UploadElement.waitForUploads(UploadElement.java:147)
at com.vaadin.flow.component.upload.testbench.UploadElement.upload(UploadElement.java:94)
at com.vaadin.flow.component.upload.testbench.UploadElement.upload(UploadElement.java:54)
AI overlord says that above code has a potential bug in it: one logical issue is usage of setTimeout. It only checks for in-progress uploads once after 500ms. If upload takes longer, your callback won't be executed. Use a polling technique instead
Using the
UploadElement.class
, we're seeing that it fails seemingly randomly.When it fails, it's because of
org.openqa.selenium.ScriptTimeoutException: script timeout
.The timeout originates in this method:
AI overlord says that above code has a potential bug in it:
one logical issue is usage of setTimeout. It only checks for in-progress uploads once after 500ms. If upload takes longer, your callback won't be executed. Use a polling technique instead
and then proposes this:
Does this make any sense at all, or should the source of timeout be investigated somewhere else?