5
  • OS: Windows Server 2016 Datacenter (64 bit)
  • Browser: Internet Explorer 11.0.14393.0
  • Protractor: 5.1.2
  • Selenium server standalone: 3.4.0
  • IEWebDriverServer.exe: 3.4.0
  • Java: 1.8.0_131

We are attempting to run automation tests against Internet Explorer 11 on a Windows Server 2016 VM. The tests can be executed against Chrome on the VM via the Selenium server, but fail in IE.

When running against IE protractor is able to start the Selenium server which opens in IE. Another window is then launched with ‘about:blank’ in the address bar. This quickly closes, and the following error is display in the console window:

[13:57:18] I/launcher - Running 1 instances of WebDriver  
[13:57:18] I/local - Starting selenium standalone server...  
[13:57:19] I/local - Selenium standalone server started at   http://10.X.X.X:61263/wd/hub   
Started    
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: 26 milliseconds  
    Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'  
    System info: host: 'XXXX', ip: '10.X.X.X', os.name: 'Windows Server 2016',  os.arch: 'x86', os.version: '10.0', java.version: '1.8.0_131'  
    Driver info: org.openqa.selenium.ie.InternetExplorerDriver  

Further logging from the web driver has uncovered a number of [Access is denied.] issues:

D 2017-06-22 10:43:26:213 BrowserFactory.cpp(248) Starting IE using the IELaunchURL API  
D 2017-06-22 10:43:26:360 BrowserFactory.cpp(202) IE launched successfully with process ID 4612  
D 2017-06-22 10:43:26:360 BrowserFactory.cpp(208) Process with ID 4612 is executing iexplore.exe  
D 2017-06-22 10:43:26:360 BrowserFactory.cpp(375) Using Active Accessibility to find IWebBrowser2 interface  
D 2017-06-22 10:43:27:615 BrowserFactory.cpp(434) Found window handle 000A017A for window with class 'Internet Explorer_Server' belonging to process with id 4612  
D 2017-06-22 10:43:27:636 BrowserFactory.cpp(396) Ignoring zoom setting: 0  
W 2017-06-22 10:43:27:644 BrowserFactory.cpp(664) -2147024891 [Access is denied.]: Call to IHTMLWindow2::get_screen failed  
…  
I 2017-06-22 10:43:28:028 Browser.cpp(130) No child frame focus. Focus is on top-level frame  
W 2017-06-22 10:43:28:040 Script.cpp(494) -2147024891 [Access is denied.]: Unable to execute code, call to IHTMLWindow2::execScript failed  
W 2017-06-22 10:43:28:040 Script.cpp(180) Cannot create anonymous function  
W 2017-06-22 10:43:28:040 response.cc(77) Error response has status code 17 and message 'JavaScript error' message  
…  

It seems obvious that there is a permissions issue in IE, but no amount of loosening of the browser security settings have had any impact.

What I have tried:

  1. Set ‘Enable Protected Mode’ to disabled for all zones
  2. Set ‘Allow Scripting of Microsoft web browser control’ to enabled
  3. Tried a number of IEWebDriverServers including both 32 and 64 bit versions
  4. Tried IE11 32 and 64bit
  5. Added the 2 registry keys FEATURE_BFCACHE for both 32 and 64bit instances of IE (https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver)
  6. Disabled ‘Enhanced Protected Mode’
  7. The configuration mentioned in this article: http://elgalu.github.io/2014/run-protractor-against-internet-explorer-vm/

Has anyone had any success getting IEDriverServer running on Windows Server 2016? How can I get past these access denied issues?

Protractor configuration:

exports.config = {

capabilities: {
'browserName': 'internet explorer',
'platform': 'WINDOWS',
'version': '11'
},

seleniumServerJar: '<absolute path to /npm/node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.4.0.jar>',

localSeleniumStandaloneOpts : {
    jvmArgs : ["-Dwebdriver.ie.driver.loglevel=DEBUG", "-Dwebdriver.ie.driver.logfile=C:/IEServerlog.log", "-Dwebdriver.ie.driver=<absolute path to /npm/node_modules/protractor/node_modules/webdriver-manager/selenium/IEDriverServer3.4.0.exe>"]
},

specs: ['spec.js']
};

Spec.js:

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

    element(by.model('todoList.todoText')).sendKeys('write first protractor test');
    element(by.css('[value="add"]')).click();

    var todoList = element.all(by.repeater('todo in todoList.todos'));
    expect(todoList.count()).toEqual(3);
    expect(todoList.get(2).getText()).toEqual('write first protractor test');

    // You wrote your first test, cross it off the list
    todoList.get(2).element(by.css('input')).click();
    var completedAmount = element.all(by.css('.done-true'));
    expect(completedAmount.count()).toEqual(2);
  });
});
Aaron
  • 51
  • 1
  • 2

1 Answers1

0

I experienced this issue with other versions of webdriver-manager.Got resolved on using 3.4.0

webdriver-manager update --versions.standalone=3.4.0 --ie32 

Update webdriver-manager to 3.4.0 and start the specific 3.4.0

webdriver-manager start --versions.standalone=3.4.0

You should be able to run in IE browser.

Bharath Kumar S
  • 1,410
  • 2
  • 10
  • 29