Protractor: On IE11: Adjacent browser.get() calls causes fail error

Created on 5 May 2017  路  2Comments  路  Source: angular/protractor

Hi there,

When calling more than one adjacent browser.get() functions, I receive a "Failed: JavaScript error (WARNING: The server did not provide any stacktrace information). Sometimes the calls seem to go through, but most of the time it fails. I thought this was an async issue regarding the second browser.get() being called before the first browser.get() finishes, but even after adding a browser.wait for 30 seconds, the failure still occurs. This happens on IE and not on Chrome.

I am using:

  • Node v6.10.1
  • IE 11
  • Protractor5.1.1
  • IEDriverServer3.4.0
  • selenium-server-standalone-3.4.0.jar

I have provided a reduced test case, my config file, and the the full error below:

Please let me know if there is any other information I should provide. Thanks.

conf.js

'use strict';

exports.config = {
    jvmArgs: ['-Dwebdriver.ie.driver=node_modules/protractor/node_modules/webdriver-manager/selenium/IEDriverServer3.4.0.exe'],
    seleniumAddress: 'http://localhost:4444/wd/hub',
    framework: 'jasmine',

    multiCapabilities: [
     {
     browserName: 'internet explorer',
     ignoreProtectedModeSettings: true
     }
    ],
    specs: ['todo-spec.js']
};

todo-spec.js

describe('angularjs homepage todo list', function() {
    beforeAll(function() {
        browser.wait(browser.get('https://angularjs.org'), 30000);
    });
    it('should add a todo', function() {
        browser.get('https://angularjs.org');

        var todoList = element.all(by.repeater('todo in todoList.todos'));
        expect(todoList.count()).toEqual(2);
        expect(todoList.get(1).getText()).toEqual('build an AngularJS app');
    });
});

Full error

[16:19:44] I/launcher - Running 1 instances of WebDriver
[16:19:44] I/hosted - Using the selenium server at http://localhost:4444/wd/hub
Started
FA Jasmine spec timed out. Resetting the WebDriver Control Flow.
A Jasmine spec timed out. Resetting the WebDriver Control Flow.


Failures:
1) angularjs homepage todo list should add a todo
  Message:
    Failed: JavaScript error (WARNING: The server did not provide any stacktrace information)
    Command duration or timeout: 62 milliseconds
    Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
    System info: host: 'NYCWHF2C4295', ip: '45.4.85.51', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_102'
    Driver info: org.openqa.selenium.ie.InternetExplorerDriver
    Capabilities [{se:ieOptions={browserAttachTimeout=0.0, ie.enableFullPageScreenshot=true, enablePersistentHover=true, ie.forceCreateProcessApi=false, ie.forceShellWindowsApi=false, ignoreZoomSetting=false, ie.fileUploadDialogTimeout=3000.0, ie.useLegacyFileUplo
adDialogHandling=false, nativeEvents=true, ie.ensureCleanSession=false, elementScrollBehavior=0.0, ie.browserCommandLineSwitches=, requireWindowFocus=false, initialBrowserUrl=http://localhost:47688/, ignoreProtectedModeSettings=true, enableElementCacheCleanup=true
}, browserName=internet explorer, pageLoadStrategy=normal, javascriptEnabled=true, version=11, platform=WINDOWS, unexpectedAlertBehaviour=dismiss}]
    Session ID: f000753e-7638-4dee-a5da-16ecfed2b1a7
  Stack:
    JavascriptError: JavaScript error (WARNING: The server did not provide any stacktrace information)
    Command duration or timeout: 62 milliseconds
    Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
    System info: host: 'NYCWHF2C4295', ip: '45.4.85.51', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_102'
    Driver info: org.openqa.selenium.ie.InternetExplorerDriver
    Capabilities [{se:ieOptions={browserAttachTimeout=0.0, ie.enableFullPageScreenshot=true, enablePersistentHover=true, ie.forceCreateProcessApi=false, ie.forceShellWindowsApi=false, ignoreZoomSetting=false, ie.fileUploadDialogTimeout=3000.0, ie.useLegacyFileUplo
adDialogHandling=false, nativeEvents=true, ie.ensureCleanSession=false, elementScrollBehavior=0.0, ie.browserCommandLineSwitches=, requireWindowFocus=false, initialBrowserUrl=http://localhost:47688/, ignoreProtectedModeSettings=true, enableElementCacheCleanup=true
}, browserName=internet explorer, pageLoadStrategy=normal, javascriptEnabled=true, version=11, platform=WINDOWS, unexpectedAlertBehaviour=dismiss}]
    Session ID: f000753e-7638-4dee-a5da-16ecfed2b1a7
        at WebDriverError (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\error.js:27:5)
        at JavascriptError (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\error.js:133:5)
        at Object.checkLegacyResponse (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\error.js:505:15)
        at parseHttpResponse (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\http.js:509:13)
        at doSend.then.response (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\http.js:440:13)
        at process._tickCallback (internal/process/next_tick.js:109:7)
    From: Task: Protractor.get(https://angularjs.org/) - get url
        at WebDriver.schedule (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\webdriver.js:816:17)
        at ProtractorBrowser.executeScriptWithDescription (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\protractor\lib\browser.ts:583:24)
        at driver.wait (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\protractor\lib\browser.ts:897:25)
        at C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\webdriver.js:947:14
        at TaskQueue.execute_ (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2970:14)
        at TaskQueue.executeNext_ (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2953:27)
        at asyncRun (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2860:25)
        at C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:676:7
    From: Task: <anonymous>
        at Timeout.pollCondition [as _onTimeout] (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2101:19)
        at ontimeout (timers.js:380:14)
        at tryOnTimeout (timers.js:244:5)
        at Timer.listOnTimeout (timers.js:214:5)
    From: Task: waiting for page to load for 10000ms
        at scheduleWait (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2094:20)
        at ControlFlow.wait (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2408:12)
        at WebDriver.wait (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\webdriver.js:943:29)
        at driver.controlFlow.execute.then.then.then.then (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\protractor\lib\browser.ts:896:30)
        at ManagedPromise.invokeCallback_ (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:1366:14)
        at TaskQueue.execute_ (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2970:14)
        at TaskQueue.executeNext_ (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2953:27)
        at asyncRun (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2813:27)
        at C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:676:7
        at process._tickCallback (internal/process/next_tick.js:109:7)
    From: Task: Run beforeAll in control flow
        at Object.<anonymous> (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\jasminewd2\index.js:94:19)
    From asynchronous test:
    Error
        at Suite.<anonymous> (C:\BLKDeveloper\apps\protractor-setup-test\todo-spec.js:2:5)
        at Object.<anonymous> (C:\BLKDeveloper\apps\protractor-setup-test\todo-spec.js:1:1)
        at Module._compile (module.js:570:32)
        at Object.Module._extensions..js (module.js:579:10)
        at Module.load (module.js:487:32)
        at tryModuleLoad (module.js:446:12)
  Message:
    Failed: JavaScript error (WARNING: The server did not provide any stacktrace information)
    Command duration or timeout: 66 milliseconds
    Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
    System info: host: 'NYCWHF2C4295', ip: '45.4.85.51', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_102'
    Driver info: org.openqa.selenium.ie.InternetExplorerDriver
    Capabilities [{se:ieOptions={browserAttachTimeout=0.0, ie.enableFullPageScreenshot=true, enablePersistentHover=true, ie.forceCreateProcessApi=false, ie.forceShellWindowsApi=false, ignoreZoomSetting=false, ie.fileUploadDialogTimeout=3000.0, ie.useLegacyFileUplo
adDialogHandling=false, nativeEvents=true, ie.ensureCleanSession=false, elementScrollBehavior=0.0, ie.browserCommandLineSwitches=, requireWindowFocus=false, initialBrowserUrl=http://localhost:47688/, ignoreProtectedModeSettings=true, enableElementCacheCleanup=true
}, browserName=internet explorer, pageLoadStrategy=normal, javascriptEnabled=true, version=11, platform=WINDOWS, unexpectedAlertBehaviour=dismiss}]
    Session ID: f000753e-7638-4dee-a5da-16ecfed2b1a7
  Stack:
    JavascriptError: JavaScript error (WARNING: The server did not provide any stacktrace information)
    Command duration or timeout: 66 milliseconds
    Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
    System info: host: 'NYCWHF2C4295', ip: '45.4.85.51', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_102'
    Driver info: org.openqa.selenium.ie.InternetExplorerDriver
    Capabilities [{se:ieOptions={browserAttachTimeout=0.0, ie.enableFullPageScreenshot=true, enablePersistentHover=true, ie.forceCreateProcessApi=false, ie.forceShellWindowsApi=false, ignoreZoomSetting=false, ie.fileUploadDialogTimeout=3000.0, ie.useLegacyFileUplo
adDialogHandling=false, nativeEvents=true, ie.ensureCleanSession=false, elementScrollBehavior=0.0, ie.browserCommandLineSwitches=, requireWindowFocus=false, initialBrowserUrl=http://localhost:47688/, ignoreProtectedModeSettings=true, enableElementCacheCleanup=true
}, browserName=internet explorer, pageLoadStrategy=normal, javascriptEnabled=true, version=11, platform=WINDOWS, unexpectedAlertBehaviour=dismiss}]
    Session ID: f000753e-7638-4dee-a5da-16ecfed2b1a7
        at WebDriverError (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\error.js:27:5)
        at JavascriptError (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\error.js:133:5)
        at Object.checkLegacyResponse (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\error.js:505:15)
        at parseHttpResponse (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\http.js:509:13)
        at doSend.then.response (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\http.js:440:13)
        at process._tickCallback (internal/process/next_tick.js:109:7)
    From: Task: Protractor.get(https://angularjs.org/) - get url
        at WebDriver.schedule (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\webdriver.js:816:17)
        at ProtractorBrowser.executeScriptWithDescription (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\protractor\lib\browser.ts:583:24)
        at driver.wait (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\protractor\lib\browser.ts:897:25)
        at C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\webdriver.js:947:14
        at TaskQueue.execute_ (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2970:14)
        at TaskQueue.executeNext_ (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2953:27)
        at asyncRun (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2860:25)
        at C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:676:7
        at process._tickCallback (internal/process/next_tick.js:109:7)
    From: Task: <anonymous>
        at pollCondition (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2101:19)
        at C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2097:7
        at new ManagedPromise (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:1067:7)
        at ControlFlow.promise (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2396:12)
        at C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2096:22
        at TaskQueue.execute_ (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2970:14)
        at TaskQueue.executeNext_ (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2953:27)
        at asyncRun (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2860:25)
        at C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:676:7
        at process._tickCallback (internal/process/next_tick.js:109:7)
    From: Task: waiting for page to load for 10000ms
        at scheduleWait (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2094:20)
        at ControlFlow.wait (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2408:12)
        at WebDriver.wait (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\webdriver.js:943:29)
        at driver.controlFlow.execute.then.then.then.then (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\protractor\lib\browser.ts:896:30)
        at ManagedPromise.invokeCallback_ (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:1366:14)
        at TaskQueue.execute_ (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2970:14)
        at TaskQueue.executeNext_ (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2953:27)
        at asyncRun (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:2813:27)
        at C:\BLKDeveloper\apps\protractor-setup-test\node_modules\selenium-webdriver\lib\promise.js:676:7
        at process._tickCallback (internal/process/next_tick.js:109:7)
    From: Task: Run it("should add a todo") in control flow
        at Object.<anonymous> (C:\BLKDeveloper\apps\protractor-setup-test\node_modules\jasminewd2\index.js:94:19)
    From asynchronous test:
    Error
        at Suite.<anonymous> (C:\BLKDeveloper\apps\protractor-setup-test\todo-spec.js:5:5)
        at Object.<anonymous> (C:\BLKDeveloper\apps\protractor-setup-test\todo-spec.js:1:1)
        at Module._compile (module.js:570:32)
        at Object.Module._extensions..js (module.js:579:10)
        at Module.load (module.js:487:32)
        at tryModuleLoad (module.js:446:12)

1 spec, 1 failure
Finished in 1.957 seconds

[16:19:56] I/launcher - 0 instance(s) of WebDriver still running
[16:19:56] I/launcher - internet explorer #01 failed 1 test(s)
[16:19:56] I/launcher - overall: 1 failed spec(s)
[16:19:56] E/launcher - Process exited with error code 1

Most helpful comment

This issue is fixed when you use browser.driver.get() instead of browser.get().

Seems like this is a known error that has happened with previous versions of Protractor (see https://github.com/angular/protractor/issues/841).

On IE11, this error still occurs around 1% of the time with a single browser.get() call, but happens almost 100% of the time when there are are 2 adjacent browser.get() calls. Seems to be because the Javascript error from https://github.com/angular/protractor/issues/841, for one reason or another, is no longer getting ignored.

For anyone currently encountering this error, I would suggest just using the browser.driver.get() function instead.

All 2 comments

This issue is fixed when you use browser.driver.get() instead of browser.get().

Seems like this is a known error that has happened with previous versions of Protractor (see https://github.com/angular/protractor/issues/841).

On IE11, this error still occurs around 1% of the time with a single browser.get() call, but happens almost 100% of the time when there are are 2 adjacent browser.get() calls. Seems to be because the Javascript error from https://github.com/angular/protractor/issues/841, for one reason or another, is no longer getting ignored.

For anyone currently encountering this error, I would suggest just using the browser.driver.get() function instead.

This was fixed previously, but the upgrade to Selenium 3 broke the fix. https://github.com/angular/protractor/pull/4149

It should be fixed for the next release, 5.1.2

Was this page helpful?
0 / 5 - 0 ratings