When we try to launch IE using WebDriver on a very first time on a fresh computer by using this code
WebDriver driver =
new
InternetExplorerDriver();
driver.get(
"http://seleniumsubbu.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 few minute of search on Google we are loaded with two option.
Option 1:- by using capabilities
|
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 this bypass the registry check for initializing IE browser.
But this also cause 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 than 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.