Reputation: 97
While executing testcases the characters are getting typed very slow. I am using Windows10 + Selenium 2.39 + IE 11 + IEDriverServer(64bit), tried replacing it with 32 bit also but to no avail.All security zones setting are checked and have tried all available resources online.Any solutions or shall i downgrade the OS to windows 7(as it was working fine on win7).
Upvotes: 3
Views: 2555
Reputation: 31
My issue was that IEdriver 64bit was typing very slow. I tried clicking 'Enable Enhanced Protection Mode' under Internet Options~Advanced. But that did not help for the Windows 2012 64bit IIS VM that I am working on.
There was no TabProcGrowth registry key under Main.
So I followed others suggestion to use 32bit version from seleniumhq.org. But that did not solve my issue.
I then unchecked 'Enable Enhanced Protection Mode' in Internet Options. That fixed my issue.
Upvotes: 0
Reputation: 710
I had this same slowwwww typing problem when trying to use "InPrivate" browsing with IEDriver 32-bit. The InPrivate mode was to ensure that saved credentials wouldn't be used for a "first-time user registration/login" test scenario that included a multi-factor authentication step to send a confirmation code.
It turned out that using the "InPrivate" option with the IEDriver and the ForceCreateProcessApi = true option triggered a 64-bit process to start, and that 64-bit process then invoked the IE browser. I'm not sure if the browser was 64bit or 32bit, but the 32-bit IEDriver was super-slow in sending keystrokes to the IE 11 browser running inside this 64-bit Windows 10 process.
The IEDriver 32-bit approach required use of the ForceCreateProcessApi option, in order to get the combination to work.
The resulting super-slow typing in tests made the overall tests unacceptably slow.
Here's what worked for me:
Code for setting up the IEDriver looked like this:
InternetExplorerOptions ieOptions = new InternetExplorerOptions();
ieOptions.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
ieOptions.IgnoreZoomLevel = true;
ieOptions.BrowserCommandLineArguments.Insert(0,"-private");
var _driver64 = new InternetExplorerDriver($"{Directory.GetCurrentDirectory()}", ieOptions);
_driver64.Manage().Window.Maximize();
_driver64.Navigate().GoToUrl("https://www.mypage.com");
then the code for interacting was same as 32-bit code, as follows:
IWebElement userName = _driver64.FindElement(By.XPath("//*[@id=\"username\"]"));
userName.SendKeys("MyUserID");
I had success using the 64-bit IEDriver from here: https://www.seleniumhq.org/download/ Look for the heading "The Internet Explorer Driver Server" and locate the 64-bit version. The version that was posted at the time self-reports as being version 3.14.0.0.
Ultimately I wanted to use a NuGet package, and I wanted a package where the name of the exe was "IEDriverServer.exe", same as the 32-bit filename. I wound up using this one: https://www.nuget.org/packages/WebDriver.IEDriverServer.win64/3.141.0 with a GitHub location of: https://github.com/SeriousM/WebDriver.IEDriverServer-nuget
It is working well for me thus far.
Upvotes: 0