¿Por qué me sale una excepción con el selenio 2.25.0 cuando intento ejecutar un script asíncrono?No se puede ejecutar el script asíncrono Selenium
//navigate to my test page. String script = "var callback = arguments[arguments.length - 1];" + "getResult(callback)"; Object result = ((JavascriptExecutor)driver).executeAsyncScript(script, ""); System.out.println(result);
página La prueba contiene la siguiente secuencia de comandos:
var result = true; function getResult(callback){ window.setTimeout(function(){callback(true);}, 3000); }
Esto produce una excepción:
FAILED: testSeleniumAsync org.openqa.selenium.TimeoutException: Script execution failed. Script: var callback = arguments[arguments.length - 1];getResult(callback); Timed out waiting for asyncrhonous script result after 2 ms (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 11 milliseconds Build info: version: '2.25.0', revision: '17482', time: '2012-07-18 22:18:01' System info: os.name: 'Linux', os.arch: 'amd64', os.version: '3.2.0-27-generic', java.version: '1.6.0_26' Driver info: driver.version: RemoteWebDriver Session ID: 6347b507cf22b6c2d3312937a82a0a02 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
Si quito el setTimeout de mi guión y devolución de llamada funciona. Pero esto no es lo que quiero.
Gracias.
Déjeme agregar algo que creo que es una trampa común, ((JavascriptExecutor) controlador) .executeAsyncScript (script, ""); // volverá de inmediato. – redochka
@redsonic +1 cualquier día. Pero en este caso, el OP está invocando la devolución de llamada. –
Tengo el mismo problema en el transportador, ¿cómo puedo configurarlo? hice browser.manage(). Timeouts(). SetScriptTimeout (60000); pero tengo el mismo error! – Emna