Cannot start automation tests from IE11 on Windows Server 2016 using Selenium and IEWebDriverServer 3.4.0

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

We are trying to run automation tests with Internet Explorer 11 on a Windows Server 2016 virtual machine. Tests can be run against Chrome in a virtual machine through a Selenium server, but it crashes in IE.

When working with IE, the transporter can start the Selenium server, which opens in IE. Then another window starts with 'about: blank in the address bar. This closes quickly, and the following error is displayed 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.XXX: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.XXX', 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 registration from the web driver revealed a number of problems [Access denied.]:

 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 permission issue in IE, but no weakening of the browser security settings has affected.

What I tried:

Has anyone had a successful launch of IEDriverServer on Windows Server 2016? How can I get past these prohibited access rights?

Transporter 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); }); }); 
+5
source share

Source: https://habr.com/ru/post/1269092/


All Articles