为什么我在尝试执行异步脚本时遇到 selenium 2.25.0 异常。
//导航到我的测试页面。 字符串脚本=“var回调=参数[arguments.length - 1];” + "getResult(回调)"; 对象结果 = ((JavascriptExecutor)driver).executeAsyncScript(script, ""); System.out.println(结果);
测试页面包含以下脚本:
变量结果=真; 函数获取结果(回调){ window.setTimeout(function(){callback(true);}, 3000); }
这会引发异常:
失败:testSeleniumAsync org.openqa.selenium.TimeoutException:脚本执行失败。脚本: var callback = arguments[arguments.length - 1];getResult(callback); 2 毫秒后等待异步脚本结果超时(警告:服务器未提供任何堆栈跟踪信息) 命令持续时间或超时:11 毫秒 构建信息:版本:'2.25.0',修订:'17482',时间:'2012-07-18 22:18:01' 系统信息:os.name:'Linux',os.arch:'amd64',os.version:'3.2.0-27-generic',java.version:'1.6.0_26' 驱动程序信息:driver.version:RemoteWebDriver 会话 ID:6347b507cf22b6c2d3312937a82a0a02 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
如果我从脚本中删除 setTimeout 并调用回调它就可以工作。但这不是我想要的。
谢谢。