Reputation: 36
I am able to run protractor fine with chrome on both windows and linux, but as soon as I go to IE (any version via saucelabs), I get an error. I am using latest protractor.
Stacktrace:
Error: Error while running testForAngular: JavaScript error in async script. (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 34 milliseconds
Build info: version: '2.30.0', revision: 'dc1ef9c', time: '2013-02-19 00:15:27'
System info: os.name: 'Windows Server 2008 R2', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_35'
Session ID: c0f07d15-af3d-45d4-8248-323bf104620b
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
Capabilities [{platform=WINDOWS, elementScrollBehavior=0, javascriptEnabled=true, enablePersistentHover=true, ignoreZoomSetting=false, browserName=internet explorer, enableElementCacheCleanup=true, unexpectedAlertBehaviour=dismiss, version=10, cssSelectorsEnabled=true, ignoreProtectedModeSettings=false, requireWindowFocus=false, allowAsynchronousJavaScript=false, handlesAlerts=true, initialBrowserUrl=, nativeEvents=true, takesScreenshot=true}]
at Error (<anonymous>)
at node_modules/selenium-webdriver/lib/webdriver/promise.js:1311:15
at node_modules/selenium-webdriver/lib/webdriver/promise.js:1460:7
at node_modules/selenium-webdriver/lib/goog/base.js:1178:15
at webdriver.promise.ControlFlow.runInNewFrame_ (node_modules/selenium-webdriver/lib/webdriver/promise.js:1438:20)
at notify (node_modules/selenium-webdriver/lib/webdriver/promise.js:328:12)
at notifyAll (node_modules/selenium-webdriver/lib/webdriver/promise.js:297:7)
at reject [as errback] (node_modules/selenium-webdriver/lib/webdriver/promise.js:423:7)
at reject (node_modules/selenium-webdriver/lib/webdriver/promise.js:1624:5)
at webdriver.promise.ControlFlow.abortFrame_ (node_modules/selenium-webdriver/lib/webdriver/promise.js:1397:9)
==== async task ====
WebDriver.executeScript()
at webdriver.WebDriver.schedule (node_modules/selenium-webdriver/lib/webdriver/webdriver.js:266:15)
at webdriver.WebDriver.executeAsyncScript (node_modules/selenium-webdriver/lib/webdriver/webdriver.js:506:15)
at /Users/kmunns/Dev/steepandcheap-www/node_modules/protractor/lib/protractor.js:528:21
at /Users/kmunns/Dev/steepandcheap-www/node_modules/selenium-webdriver/lib/goog/base.js:1178:15
at webdriver.promise.ControlFlow.runInNewFrame_ (node_modules/selenium-webdriver/lib/webdriver/promise.js:1438:20)
at notify (node_modules/selenium-webdriver/lib/webdriver/promise.js:328:12)
at notifyAll (node_modules/selenium-webdriver/lib/webdriver/promise.js:297:7)
at reject (node_modules/selenium-webdriver/lib/webdriver/promise.js:423:7)
at webdriver.promise.ControlFlow.runInNewFrame_ (node_modules/selenium-webdriver/lib/webdriver/promise.js:1464:5)
==== async task ====
at null.<anonymous> (node_modules/protractor/jasminewd/index.js:53:12)
at null.<anonymous> (node_modules/protractor/node_modules/minijasminenode/lib/async-callback.js:45:37)
at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
Upvotes: 2
Views: 1803
Reputation: 834
This is a bug that affects versions of Protractor prior to 0.17/0.18. The core issue is that browser.get does not explicitly use the browser navigation functionality; it's a wrapped functional that uses an JS to change location and then load information into the DOM.
Unfortunately, the timeout was way too low for certain configurations (IE on SauceLabs, PhantomJS) and a consequence of that was this issue with the 'async load' message. The solution was adding a retry to browser.get as well as extending the timeout.
TL;DR: Upgrade to 0.18.1 (latest, as of this post) and you should be good to go!
Relevant changelog entries:
(10aec0f) fix(pageload): increase wait timeout
The 300 ms wait caused problems when testing IE on Sauce Labs. It seems way too short. "browser.get()" invariably timed out. Increasing it solved our problem.
(a0bd84b) fix(pageload): add a wait during protractor.get() to solve unload issues
Some systems would not wait for the browser unload event to finish before beginning the asynchronous script execution.
Closes #406. Closes #85.
Upvotes: 1