Running automated Selenium Tests on Windows Server

We struggle for a couple of hours trying to run some automated tests for a WebMap migration on our Continuos Build server.

But we got several errors.
The problem was cause by the fatal combination of Windows Server and IE explorer 11.

So this is what we found.

First, we needed to stop the Interactive Services Detection service

This service was prompting for information and affecting our tests.

Second, we had to modify the test driver initialization:

And Third, we had to verify that all Required Configuration was met:

  • The IEDriverServer exectuable must be downloaded and placed in your PATH.

  • On IE 7 or higher on Windows Vista or Windows 7, you must set the Protected Mode settings for each zone to be the same value. The value can be on or off, as long as it is the same for every zone. To set the Protected Mode settings, choose "Internet Options..." from the Tools menu, and click on the Security tab. For each zone, there will be a check box at the bottom of the tab labeled "Enable Protected Mode".

  • Additionally, "Enhanced Protected Mode" must be disabled for IE 10 and higher. This option is found in the Advanced tab of the Internet Options dialog.

  • The browser zoom level must be set to 100% so that the native mouse events can be set to the correct coordinates.

  • Very Important!! For IE 11 only, you will need to set a registry entry on the target computer so that the driver can maintain a connection to the instance of Internet Explorer it creates. For 32-bit Windows installations, the key you must examine in the registry editor is HKEYLOCALMACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATUREBFCACHE. For 64-bit Windows installations, the key is HKEYLOCALMACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATUREBFCACHE. Please note that the FEATURE_BFCACHE subkey may or may not be present, and should be created if it is not present. Important: Inside this key, create a DWORD value named iexplore.exe with the value of 0.