एसिंक्रोनस स्क्रिप्ट निष्पादित करने का प्रयास करते समय मुझे सेलेनियम 2.25.0 के साथ अपवाद क्यों मिल रहा है। अगर मैं अपने स्क्रिप्ट से setTimeout को हटा दें और मैं कालबैक यह काम करता है फोनसेलेनियम एसिंक्रोनस स्क्रिप्ट को निष्पादित करने में असमर्थ
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)
:
var result = true; function getResult(callback){ window.setTimeout(function(){callback(true);}, 3000); }
यह एक अपवाद फेंकता है:
//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);
परीक्षण पृष्ठ निम्न स्क्रिप्ट में शामिल है। लेकिन यह वही नहीं है जो मैं चाहता हूं।
धन्यवाद।
मुझे कुछ ऐसा लगता है जो मुझे लगता है कि एक आम गड़बड़ी है, ((जावास्क्रिप्ट एक्स्सेलर) ड्राइवर) .executeAsyncScript (स्क्रिप्ट, ""); // तुरंत वापस आ जाएगा। – redochka
@redsonic +1 किसी भी दिन। लेकिन इस मामले में ओपी कॉलबैक का आह्वान कर रहा है। –
मेरे पास प्रोटैक्टर में एक ही समस्या है, मैं इसे कैसे कॉन्फ़िगर कर सकता हूं? मैंने ब्राउजर.मैनेज()। टाइमआउट्स() सेटस्क्रिप्टटाइमआउट (60000); लेकिन मुझे एक ही त्रुटि है! – Emna