When we try to launch IE using WebDriver on very first time on a fresh computer by using this code
1 2 | WebDriver driver = new InternetExplorerDriver(); driver.get("http://abodeqa.com"); |
Then we filled with amazement when we find this exception
1 2 3 4 5 6 7 8 9 10 11 12 13 | org.openqa.selenium.WebDriverException: Unexpected error launching Internet Explorer. Protected Mode must be set to the same value (enabled or disabled) for all zones. (WARNING: The server did not provide any stacktrace information) System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_25' Driver info: driver.version: <a title="Everything you wanted to know about the Internet Explorer driver" href="https://code.google.com/p/selenium/wiki/InternetExplorerDriver">InternetExplorerDriver</a> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:131) at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:105) at org.openqa.selenium.remote.<a title="Information about the RemoteWebDriver" href="https://code.google.com/p/selenium/wiki/RemoteWebDriver">RemoteWebDriver</a>.execute(<a title="Information about the RemoteWebDriver" href="https://code.google.com/p/selenium/wiki/RemoteWebDriver">RemoteWebDriver</a>.java:409) at org.openqa.selenium.remote.<a title="Information about the RemoteWebDriver" href="https://code.google.com/p/selenium/wiki/RemoteWebDriver">RemoteWebDriver</a>.startSession(<a title="Information about the RemoteWebDriver" href="https://code.google.com/p/selenium/wiki/RemoteWebDriver">RemoteWebDriver</a>.java:103) at org.openqa.selenium.ie.<a title="Everything you wanted to know about the Internet Explorer driver" href="https://code.google.com/p/selenium/wiki/InternetExplorerDriver">InternetExplorerDriver</a>.setup(<a title="Everything you wanted to know about the Internet Explorer driver" href="https://code.google.com/p/selenium/wiki/InternetExplorerDriver">InternetExplorerDriver</a>.java:104) at org.openqa.selenium.ie.<a title="Everything you wanted to know about the Internet Explorer driver" href="https://code.google.com/p/selenium/wiki/InternetExplorerDriver">InternetExplorerDriver</a>.<init>(<a title="Everything you wanted to know about the Internet Explorer driver" href="https://code.google.com/p/selenium/wiki/InternetExplorerDriver">InternetExplorerDriver</a>.java:61) |
On seeing the exception message we normally come to know the root of this exception and after a few minutes of search on Google, we are loaded with two option.
[the_ad_placement id=”incontent”]
Option 1:- by using capabilities
1 2 3 | DesiredCapabilities caps = DesiredCapabilities.internetExplorer(); caps.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); WebDriver driver = new InternetExplorerDriver(caps); |
Why We use Capability:
When the rewritten IE driver was first introduced, it was decided that it would enforce its required Protected Mode settings, and throw an exception if they were not properly set. Protected Mode settings, like almost all other settings of IE, are stored in the Windows registry and are checked when the browser is instantiated.
But the Indian Idiotic IT department does not give proper rights to change the system setting..(This gives them immense pleasure like they have hired donkey and would keep them busy in finding the bypass of this hack of their non-sense credential hunt..)(:D) So to cope with such problems we need this capability. Because of this bypass the registry check for initializing IE browser.
But this also causes some unwanted thing like
- Hangs
- Element location not working
- clicks not being propagated
Option 2: If you have rights to change the small setting in your system then try this
Go to Internet Option in IE –> Security–>Check or Unchecked “Enable Protected Mode.”
Note that you don’t have to change the slider for security level, and you don’t have to disable Protected Mode. I routinely run with Protected Mode turned on for all zones, as I think it provides a more secure browsing experience.
Above solution is inspired/ taken from the work done by Jim Evans. For any kind of IE related issues, you may contact him on his mail id. Hopefully, he would help us at the time of need since he is one of the contributors to the Selenium project, owning the .NET bindings and the Internet Explorer driver.
Pingback: Adding add-on in Firefox and Chrome using WebDriver | Abode QA
Pingback: Email your failing Selenium WebDriver scripts’ Stack Trace to your Email Id | Abode QA
Sorry, got it ! The problem is that one has to click on each of the “zones” and enable that box for each one of them. I didnt realized that mine had one that was unchecked.
Pingback: Challenges to run Selenium WebDriver scripts in IE Browser | Abode QA