selenium: SendKeys does not work correctly with non-US keyboard settings

Meta -

OS: Windows 10

Selenium Version: 3.5.1

Browser: Internet Explorer

Browser Version: 11.540.15063.0

Expected Behavior -

new Actions(driver).sendKeys("RD:.* PN:TEST-PA\\ST-1").perform(); should send RD:.* PN:TEST-PA\ST-1 into the focused text field

Actual Behavior -

new Actions(driver).sendKeys("RD:.* PN:TEST-PA\\ST-1").perform(); sends RD:.* PN:TEST-PAßST-1 into the focused text field

Steps to reproduce -

Execute new Actions(driver).sendKeys("RD:.* PN:TEST-PA\\ST-1").perform(); under german keyboard settings. If you use us settings, everything works like expected.

More Information -

With the previous version (3.4.0) of iedriver everything works like expected.

Here is the log from 3.5.1 with german keyboard setting (error):

T 2017-08-21 15:44:23:984 server.cc(174) Entering Server::ProcessRequest
T 2017-08-21 15:44:23:984 server.cc(238) Entering Server::ReadRequestBody
T 2017-08-21 15:44:23:984 server.cc(183) Process request with: URI: /session/b07477fc-48fc-4f2f-9350-9523bd787237/actions HTTP verb: POST
body: {"actions":[{"type":"key","actions":[{"type":"keyDown","value":"R"},{"type":"keyUp","value":"R"},{"type":"keyDown","value":"D"},{"type":"keyUp","value":"D"},{"type":"keyDown","value":":"},{"type":"keyUp","value":":"},{"type":"keyDown","value":"."},{"type":"keyUp","value":"."},{"type":"keyDown","value":"*"},{"type":"keyUp","value":"*"},{"type":"keyDown","value":" "},{"type":"keyUp","value":" "},{"type":"keyDown","value":"P"},{"type":"keyUp","value":"P"},{"type":"keyDown","value":"N"},{"type":"keyUp","value":"N"},{"type":"keyDown","value":":"},{"type":"keyUp","value":":"},{"type":"keyDown","value":"T"},{"type":"keyUp","value":"T"},{"type":"keyDown","value":"E"},{"type":"keyUp","value":"E"},{"type":"keyDown","value":"S"},{"type":"keyUp","value":"S"},{"type":"keyDown","value":"T"},{"type":"keyUp","value":"T"},{"type":"keyDown","value":"-"},{"type":"keyUp","value":"-"},{"type":"keyDown","value":"P"},{"type":"keyUp","value":"P"},{"type":"keyDown","value":"A"},{"type":"keyUp","value":"A"},{"type":"keyDown","value":"\\"},{"type":"keyUp","value":"\\"},{"type":"keyDown","value":"S"},{"type":"keyUp","value":"S"},{"type":"keyDown","value":"T"},{"type":"keyUp","value":"T"},{"type":"keyDown","value":"-"},{"type":"keyUp","value":"-"},{"type":"keyDown","value":"1"},{"type":"keyUp","value":"1"}],"id":"default keyboard"}]}
T 2017-08-21 15:44:23:984 server.cc(272) Entering Server::DispatchCommand
T 2017-08-21 15:44:23:984 server.cc(583) Entering Server::LookupCommand
D 2017-08-21 15:44:23:984 server.cc(281) Command: POST /session/b07477fc-48fc-4f2f-9350-9523bd787237/actions {"actions":[{"type":"key","actions":[{"type":"keyDown","value":"R"},{"type":"keyUp","value":"R"},{"type":"keyDown","value":"D"},{"type":"keyUp","value":"D"},{"type":"keyDown","value":":"},{"type":"keyUp","value":":"},{"type":"keyDown","value":"."},{"type":"keyUp","value":"."},{"type":"keyDown","value":"*"},{"type":"keyUp","value":"*"},{"type":"keyDown","value":" "},{"type":"keyUp","value":" "},{"type":"keyDown","value":"P"},{"type":"keyUp","value":"P"},{"type":"keyDown","value":"N"},{"type":"keyUp","value":"N"},{"type":"keyDown","value":":"},{"type":"keyUp","value":":"},{"type":"keyDown","value":"T"},{"type":"keyUp","value":"T"},{"type":"keyDown","value":"E"},{"type":"keyUp","value":"E"},{"type":"keyDown","value":"S"},{"type":"keyUp","value":"S"},{"type":"keyDown","value":"T"},{"type":"keyUp","value":"T"},{"type":"keyDown","value":"-"},{"type":"keyUp","value":"-"},{"type":"keyDown","value":"P"},{"type":"keyUp","value":"P"},{"type":"keyDown","value":"A"},{"type":"keyUp","value":"A"},{"type":"keyDown","value":"\\"},{"type":"keyUp","value":"\\"},{"type":"keyDown","value":"S"},{"type":"keyUp","value":"S"},{"type":"keyDown","value":"T"},{"type":"keyUp","value":"T"},{"type":"keyDown","value":"-"},{"type":"keyUp","value":"-"},{"type":"keyDown","value":"1"},{"type":"keyUp","value":"1"}],"id":"default keyboard"}]}
T 2017-08-21 15:44:23:984 server.cc(378) Entering Server::LookupSession
T 2017-08-21 15:44:23:984 IESession.cpp(191) Entering IESession::ExecuteCommand
T 2017-08-21 15:44:23:984 IECommandExecutor.cpp(122) Entering IECommandExecutor::OnSetCommand
T 2017-08-21 15:44:23:984 command.cc(31) Entering Command::Deserialize
D 2017-08-21 15:44:23:984 command.cc(36) Raw JSON command: { "name" : "performActions", "locator" : { "sessionid" : "b07477fc-48fc-4f2f-9350-9523bd787237" }, "parameters" : {"actions":[{"type":"key","actions":[{"type":"keyDown","value":"R"},{"type":"keyUp","value":"R"},{"type":"keyDown","value":"D"},{"type":"keyUp","value":"D"},{"type":"keyDown","value":":"},{"type":"keyUp","value":":"},{"type":"keyDown","value":"."},{"type":"keyUp","value":"."},{"type":"keyDown","value":"*"},{"type":"keyUp","value":"*"},{"type":"keyDown","value":" "},{"type":"keyUp","value":" "},{"type":"keyDown","value":"P"},{"type":"keyUp","value":"P"},{"type":"keyDown","value":"N"},{"type":"keyUp","value":"N"},{"type":"keyDown","value":":"},{"type":"keyUp","value":":"},{"type":"keyDown","value":"T"},{"type":"keyUp","value":"T"},{"type":"keyDown","value":"E"},{"type":"keyUp","value":"E"},{"type":"keyDown","value":"S"},{"type":"keyUp","value":"S"},{"type":"keyDown","value":"T"},{"type":"keyUp","value":"T"},{"type":"keyDown","value":"-"},{"type":"keyUp","value":"-"},{"type":"keyDown","value":"P"},{"type":"keyUp","value":"P"},{"type":"keyDown","value":"A"},{"type":"keyUp","value":"A"},{"type":"keyDown","value":"\\"},{"type":"keyUp","value":"\\"},{"type":"keyDown","value":"S"},{"type":"keyUp","value":"S"},{"type":"keyDown","value":"T"},{"type":"keyUp","value":"T"},{"type":"keyDown","value":"-"},{"type":"keyUp","value":"-"},{"type":"keyDown","value":"1"},{"type":"keyUp","value":"1"}],"id":"default keyboard"}]} }
T 2017-08-21 15:44:23:985 IECommandExecutor.cpp(133) Entering IECommandExecutor::OnExecCommand
T 2017-08-21 15:44:23:985 IESession.cpp(212) Beginning wait for response length to be not zero
T 2017-08-21 15:44:23:985 IECommandExecutor.cpp(454) Entering IECommandExecutor::DispatchCommand
T 2017-08-21 15:44:23:985 IECommandExecutor.cpp(567) Entering IECommandExecutor::GetCurrentBrowser
T 2017-08-21 15:44:23:985 IECommandExecutor.cpp(573) Entering IECommandExecutor::GetManagedBrowser
T 2017-08-21 15:44:23:985 IECommandExecutor.cpp(523) Entering IECommandExecutor::IsAlertActive
T 2017-08-21 15:44:23:985 Browser.cpp(713) Entering Browser::GetActiveDialogWindowHandle
T 2017-08-21 15:44:23:985 Browser.cpp(206) Entering Browser::GetContentWindowHandle
D 2017-08-21 15:44:23:985 IECommandExecutor.cpp(537) No alert handle is found
T 2017-08-21 15:44:23:986 IECommandExecutor.cpp(567) Entering IECommandExecutor::GetCurrentBrowser
T 2017-08-21 15:44:23:986 IECommandExecutor.cpp(573) Entering IECommandExecutor::GetManagedBrowser
T 2017-08-21 15:44:23:986 InputManager.cpp(80) Entering InputManager::PerformInputSequence
D 2017-08-21 15:44:23:986 InputManager.cpp(101) Mutex acquired for user interaction.
T 2017-08-21 15:44:23:986 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:986 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:986 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:986 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:986 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:986 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:986 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:986 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:987 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:987 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:988 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:988 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:988 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:988 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:988 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:988 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:988 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:988 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:988 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:988 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:988 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:988 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:988 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:988 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:988 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:988 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:988 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:23:988 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:44:23:988 HookProcessor.cpp(94) Entering HookProcessor::Initialize
T 2017-08-21 15:44:23:988 HookProcessor.cpp(104) Entering HookProcessor::Initialize
T 2017-08-21 15:44:23:988 HookProcessor.cpp(167) Entering HookProcessor::InstallWindowsHook
T 2017-08-21 15:44:23:988 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:44:24:099 HookProcessor.cpp(244) Entering HookProcessor::Dispose
T 2017-08-21 15:44:24:099 HookProcessor.cpp(197) Entering HookProcessor::UninstallWindowsHook
T 2017-08-21 15:44:24:099 HookProcessor.cpp(244) Entering HookProcessor::Dispose
T 2017-08-21 15:44:24:154 response.cc(72) Entering Response::SetSuccessResponse
T 2017-08-21 15:44:24:154 response.cc(78) Entering Response::SetResponse
T 2017-08-21 15:44:24:154 IECommandExecutor.cpp(567) Entering IECommandExecutor::GetCurrentBrowser
T 2017-08-21 15:44:24:154 IECommandExecutor.cpp(573) Entering IECommandExecutor::GetManagedBrowser
T 2017-08-21 15:44:24:154 response.cc(51) Entering Response::Serialize
T 2017-08-21 15:44:24:154 IESession.cpp(221) Found non-zero response length
T 2017-08-21 15:44:24:154 IECommandExecutor.cpp(156) Entering IECommandExecutor::OnGetResponse
T 2017-08-21 15:44:24:154 IECommandExecutor.cpp(285) Entering IECommandExecutor::OnIsSessionValid
D 2017-08-21 15:44:24:154 server.cc(338) Response: {"value":null}

T 2017-08-21 15:44:24:154 server.cc(391) Entering Server::SendResponseToClient
T 2017-08-21 15:44:24:154 response.cc(30) Entering Response::Deserialize
T 2017-08-21 15:44:24:154 server.cc(445) Entering Server::SendHttpOk

Here is the log from 3.5.1 with us keyboard settings (works like expected):

T 2017-08-21 15:42:36:934 server.cc(174) Entering Server::ProcessRequest
T 2017-08-21 15:42:36:934 server.cc(238) Entering Server::ReadRequestBody
T 2017-08-21 15:42:36:934 server.cc(183) Process request with: URI: /session/6bc4e112-8a2c-4c88-8390-8ddd83f5adec/actions HTTP verb: POST
body: {"actions":[{"type":"key","actions":[{"type":"keyDown","value":"R"},{"type":"keyUp","value":"R"},{"type":"keyDown","value":"D"},{"type":"keyUp","value":"D"},{"type":"keyDown","value":":"},{"type":"keyUp","value":":"},{"type":"keyDown","value":"."},{"type":"keyUp","value":"."},{"type":"keyDown","value":"*"},{"type":"keyUp","value":"*"},{"type":"keyDown","value":" "},{"type":"keyUp","value":" "},{"type":"keyDown","value":"P"},{"type":"keyUp","value":"P"},{"type":"keyDown","value":"N"},{"type":"keyUp","value":"N"},{"type":"keyDown","value":":"},{"type":"keyUp","value":":"},{"type":"keyDown","value":"T"},{"type":"keyUp","value":"T"},{"type":"keyDown","value":"E"},{"type":"keyUp","value":"E"},{"type":"keyDown","value":"S"},{"type":"keyUp","value":"S"},{"type":"keyDown","value":"T"},{"type":"keyUp","value":"T"},{"type":"keyDown","value":"-"},{"type":"keyUp","value":"-"},{"type":"keyDown","value":"P"},{"type":"keyUp","value":"P"},{"type":"keyDown","value":"A"},{"type":"keyUp","value":"A"},{"type":"keyDown","value":"\\"},{"type":"keyUp","value":"\\"},{"type":"keyDown","value":"S"},{"type":"keyUp","value":"S"},{"type":"keyDown","value":"T"},{"type":"keyUp","value":"T"},{"type":"keyDown","value":"-"},{"type":"keyUp","value":"-"},{"type":"keyDown","value":"1"},{"type":"keyUp","value":"1"}],"id":"default keyboard"}]}
T 2017-08-21 15:42:36:934 server.cc(272) Entering Server::DispatchCommand
T 2017-08-21 15:42:36:934 server.cc(583) Entering Server::LookupCommand
D 2017-08-21 15:42:36:934 server.cc(281) Command: POST /session/6bc4e112-8a2c-4c88-8390-8ddd83f5adec/actions {"actions":[{"type":"key","actions":[{"type":"keyDown","value":"R"},{"type":"keyUp","value":"R"},{"type":"keyDown","value":"D"},{"type":"keyUp","value":"D"},{"type":"keyDown","value":":"},{"type":"keyUp","value":":"},{"type":"keyDown","value":"."},{"type":"keyUp","value":"."},{"type":"keyDown","value":"*"},{"type":"keyUp","value":"*"},{"type":"keyDown","value":" "},{"type":"keyUp","value":" "},{"type":"keyDown","value":"P"},{"type":"keyUp","value":"P"},{"type":"keyDown","value":"N"},{"type":"keyUp","value":"N"},{"type":"keyDown","value":":"},{"type":"keyUp","value":":"},{"type":"keyDown","value":"T"},{"type":"keyUp","value":"T"},{"type":"keyDown","value":"E"},{"type":"keyUp","value":"E"},{"type":"keyDown","value":"S"},{"type":"keyUp","value":"S"},{"type":"keyDown","value":"T"},{"type":"keyUp","value":"T"},{"type":"keyDown","value":"-"},{"type":"keyUp","value":"-"},{"type":"keyDown","value":"P"},{"type":"keyUp","value":"P"},{"type":"keyDown","value":"A"},{"type":"keyUp","value":"A"},{"type":"keyDown","value":"\\"},{"type":"keyUp","value":"\\"},{"type":"keyDown","value":"S"},{"type":"keyUp","value":"S"},{"type":"keyDown","value":"T"},{"type":"keyUp","value":"T"},{"type":"keyDown","value":"-"},{"type":"keyUp","value":"-"},{"type":"keyDown","value":"1"},{"type":"keyUp","value":"1"}],"id":"default keyboard"}]}
T 2017-08-21 15:42:36:934 server.cc(378) Entering Server::LookupSession
T 2017-08-21 15:42:36:934 IESession.cpp(191) Entering IESession::ExecuteCommand
T 2017-08-21 15:42:36:934 IECommandExecutor.cpp(122) Entering IECommandExecutor::OnSetCommand
T 2017-08-21 15:42:36:934 command.cc(31) Entering Command::Deserialize
D 2017-08-21 15:42:36:934 command.cc(36) Raw JSON command: { "name" : "performActions", "locator" : { "sessionid" : "6bc4e112-8a2c-4c88-8390-8ddd83f5adec" }, "parameters" : {"actions":[{"type":"key","actions":[{"type":"keyDown","value":"R"},{"type":"keyUp","value":"R"},{"type":"keyDown","value":"D"},{"type":"keyUp","value":"D"},{"type":"keyDown","value":":"},{"type":"keyUp","value":":"},{"type":"keyDown","value":"."},{"type":"keyUp","value":"."},{"type":"keyDown","value":"*"},{"type":"keyUp","value":"*"},{"type":"keyDown","value":" "},{"type":"keyUp","value":" "},{"type":"keyDown","value":"P"},{"type":"keyUp","value":"P"},{"type":"keyDown","value":"N"},{"type":"keyUp","value":"N"},{"type":"keyDown","value":":"},{"type":"keyUp","value":":"},{"type":"keyDown","value":"T"},{"type":"keyUp","value":"T"},{"type":"keyDown","value":"E"},{"type":"keyUp","value":"E"},{"type":"keyDown","value":"S"},{"type":"keyUp","value":"S"},{"type":"keyDown","value":"T"},{"type":"keyUp","value":"T"},{"type":"keyDown","value":"-"},{"type":"keyUp","value":"-"},{"type":"keyDown","value":"P"},{"type":"keyUp","value":"P"},{"type":"keyDown","value":"A"},{"type":"keyUp","value":"A"},{"type":"keyDown","value":"\\"},{"type":"keyUp","value":"\\"},{"type":"keyDown","value":"S"},{"type":"keyUp","value":"S"},{"type":"keyDown","value":"T"},{"type":"keyUp","value":"T"},{"type":"keyDown","value":"-"},{"type":"keyUp","value":"-"},{"type":"keyDown","value":"1"},{"type":"keyUp","value":"1"}],"id":"default keyboard"}]} }
T 2017-08-21 15:42:36:935 IECommandExecutor.cpp(133) Entering IECommandExecutor::OnExecCommand
T 2017-08-21 15:42:36:935 IESession.cpp(212) Beginning wait for response length to be not zero
T 2017-08-21 15:42:36:935 IECommandExecutor.cpp(454) Entering IECommandExecutor::DispatchCommand
T 2017-08-21 15:42:36:935 IECommandExecutor.cpp(567) Entering IECommandExecutor::GetCurrentBrowser
T 2017-08-21 15:42:36:935 IECommandExecutor.cpp(573) Entering IECommandExecutor::GetManagedBrowser
T 2017-08-21 15:42:36:935 IECommandExecutor.cpp(523) Entering IECommandExecutor::IsAlertActive
T 2017-08-21 15:42:36:935 Browser.cpp(713) Entering Browser::GetActiveDialogWindowHandle
T 2017-08-21 15:42:36:935 Browser.cpp(206) Entering Browser::GetContentWindowHandle
D 2017-08-21 15:42:36:935 IECommandExecutor.cpp(537) No alert handle is found
T 2017-08-21 15:42:36:935 IECommandExecutor.cpp(567) Entering IECommandExecutor::GetCurrentBrowser
T 2017-08-21 15:42:36:935 IECommandExecutor.cpp(573) Entering IECommandExecutor::GetManagedBrowser
T 2017-08-21 15:42:36:936 InputManager.cpp(80) Entering InputManager::PerformInputSequence
D 2017-08-21 15:42:36:936 InputManager.cpp(101) Mutex acquired for user interaction.
T 2017-08-21 15:42:36:936 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:936 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:936 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:936 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:936 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:936 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:936 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:936 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:936 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:936 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:936 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:936 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:936 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:936 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:937 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:937 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:938 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:938 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:938 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:938 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:938 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:938 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:938 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:938 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:938 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:36:938 InputManager.cpp(798) Entering InputManager::AddKeyboardInput
T 2017-08-21 15:42:36:938 HookProcessor.cpp(94) Entering HookProcessor::Initialize
T 2017-08-21 15:42:36:938 HookProcessor.cpp(104) Entering HookProcessor::Initialize
T 2017-08-21 15:42:36:938 HookProcessor.cpp(167) Entering HookProcessor::InstallWindowsHook
T 2017-08-21 15:42:36:938 Browser.cpp(206) Entering Browser::GetContentWindowHandle
T 2017-08-21 15:42:37:048 HookProcessor.cpp(244) Entering HookProcessor::Dispose
T 2017-08-21 15:42:37:048 HookProcessor.cpp(197) Entering HookProcessor::UninstallWindowsHook
T 2017-08-21 15:42:37:048 HookProcessor.cpp(244) Entering HookProcessor::Dispose
T 2017-08-21 15:42:37:105 response.cc(72) Entering Response::SetSuccessResponse
T 2017-08-21 15:42:37:105 response.cc(78) Entering Response::SetResponse
T 2017-08-21 15:42:37:106 IECommandExecutor.cpp(567) Entering IECommandExecutor::GetCurrentBrowser
T 2017-08-21 15:42:37:106 IECommandExecutor.cpp(573) Entering IECommandExecutor::GetManagedBrowser
T 2017-08-21 15:42:37:106 response.cc(51) Entering Response::Serialize
T 2017-08-21 15:42:37:106 IESession.cpp(221) Found non-zero response length
T 2017-08-21 15:42:37:106 IECommandExecutor.cpp(156) Entering IECommandExecutor::OnGetResponse
T 2017-08-21 15:42:37:106 IECommandExecutor.cpp(285) Entering IECommandExecutor::OnIsSessionValid
D 2017-08-21 15:42:37:106 server.cc(338) Response: {"value":null}

T 2017-08-21 15:42:37:106 server.cc(391) Entering Server::SendResponseToClient
T 2017-08-21 15:42:37:106 response.cc(30) Entering Response::Deserialize
T 2017-08-21 15:42:37:106 server.cc(445) Entering Server::SendHttpOk

Here is the log with 3.4.0 iedriver and german keyboard settings (works like expected):

T 2017-08-21 15:56:00:745 server.cc(174) Entering Server::ProcessRequest
T 2017-08-21 15:56:00:745 server.cc(238) Entering Server::ReadRequestBody
T 2017-08-21 15:56:00:745 server.cc(183) Process request with: URI: /session/ae282941-e9f0-43d3-b95a-817c27b8b992/keys HTTP verb: POST
body: {"value":["RD:.* PN:TEST-PA\\ST-1"]}
T 2017-08-21 15:56:00:745 server.cc(272) Entering Server::DispatchCommand
T 2017-08-21 15:56:00:745 server.cc(579) Entering Server::LookupCommand
D 2017-08-21 15:56:00:745 server.cc(281) Command: POST /session/ae282941-e9f0-43d3-b95a-817c27b8b992/keys {"value":["RD:.* PN:TEST-PA\\ST-1"]}
T 2017-08-21 15:56:00:745 server.cc(395) Entering Server::LookupSession
T 2017-08-21 15:56:00:745 IESession.cpp(191) Entering IESession::ExecuteCommand
T 2017-08-21 15:56:00:745 IECommandExecutor.cpp(125) Entering IECommandExecutor::OnSetCommand
T 2017-08-21 15:56:00:745 command.cc(31) Entering Command::Deserialize
D 2017-08-21 15:56:00:745 command.cc(36) Raw JSON command: { "name" : "sendKeysToActiveElement", "locator" : { "sessionid" : "ae282941-e9f0-43d3-b95a-817c27b8b992" }, "parameters" : {"value":["RD:.* PN:TEST-PA\\ST-1"]} }
T 2017-08-21 15:56:00:745 IESession.cpp(212) Beginning wait for response length to be not zero
T 2017-08-21 15:56:00:745 IECommandExecutor.cpp(136) Entering IECommandExecutor::OnExecCommand
T 2017-08-21 15:56:00:745 IECommandExecutor.cpp(459) Entering IECommandExecutor::DispatchCommand
T 2017-08-21 15:56:00:746 IECommandExecutor.cpp(574) Entering IECommandExecutor::GetCurrentBrowser
T 2017-08-21 15:56:00:746 IECommandExecutor.cpp(580) Entering IECommandExecutor::GetManagedBrowser
T 2017-08-21 15:56:00:746 IECommandExecutor.cpp(530) Entering IECommandExecutor::IsAlertActive
T 2017-08-21 15:56:00:746 Browser.cpp(713) Entering Browser::GetActiveDialogWindowHandle
T 2017-08-21 15:56:00:746 Browser.cpp(206) Entering Browser::GetContentWindowHandle
D 2017-08-21 15:56:00:746 IECommandExecutor.cpp(544) No alert handle is found
T 2017-08-21 15:56:00:746 IECommandExecutor.cpp(574) Entering IECommandExecutor::GetCurrentBrowser
T 2017-08-21 15:56:00:746 IECommandExecutor.cpp(580) Entering IECommandExecutor::GetManagedBrowser
T 2017-08-21 15:56:00:746 InputManager.cpp(73) Entering InputManager::PerformInputSequence
D 2017-08-21 15:56:00:746 InputManager.cpp(94) Mutex acquired for user interaction.
T 2017-08-21 15:56:00:746 InputManager.cpp(540) Entering InputManager::SendKeystrokes
T 2017-08-21 15:56:00:747 Browser.cpp(206) Entering Browser::GetContentWindowHandle
D 2017-08-21 15:56:00:747 InputManager.cpp(567) Using SendMessage method for sending keys
T 2017-08-21 15:56:00:747 HookProcessor.cpp(93) Entering HookProcessor::Initialize
T 2017-08-21 15:56:00:747 HookProcessor.cpp(103) Entering HookProcessor::Initialize
T 2017-08-21 15:56:00:747 HookProcessor.cpp(166) Entering HookProcessor::InstallWindowsHook
T 2017-08-21 15:56:02:427 HookProcessor.cpp(243) Entering HookProcessor::Dispose
T 2017-08-21 15:56:02:427 HookProcessor.cpp(196) Entering HookProcessor::UninstallWindowsHook
T 2017-08-21 15:56:02:427 HookProcessor.cpp(243) Entering HookProcessor::Dispose
T 2017-08-21 15:56:02:427 HookProcessor.cpp(243) Entering HookProcessor::Dispose
T 2017-08-21 15:56:02:427 response.cc(63) Entering Response::SetSuccessResponse
T 2017-08-21 15:56:02:427 response.cc(69) Entering Response::SetResponse
T 2017-08-21 15:56:02:427 IECommandExecutor.cpp(574) Entering IECommandExecutor::GetCurrentBrowser
T 2017-08-21 15:56:02:427 IECommandExecutor.cpp(580) Entering IECommandExecutor::GetManagedBrowser
T 2017-08-21 15:56:02:427 response.cc(51) Entering Response::Serialize
T 2017-08-21 15:56:02:427 IESession.cpp(221) Found non-zero response length
T 2017-08-21 15:56:02:428 IECommandExecutor.cpp(159) Entering IECommandExecutor::OnGetResponse
T 2017-08-21 15:56:02:428 IECommandExecutor.cpp(288) Entering IECommandExecutor::OnIsSessionValid
D 2017-08-21 15:56:02:428 server.cc(355) Response: {"sessionId":"ae282941-e9f0-43d3-b95a-817c27b8b992","status":0,"value":null}

T 2017-08-21 15:56:02:428 server.cc(408) Entering Server::SendResponseToClient
T 2017-08-21 15:56:02:428 response.cc(36) Entering Response::Deserialize
T 2017-08-21 15:56:02:428 server.cc(462) Entering Server::SendHttpOk

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Reactions: 1
  • Comments: 36 (12 by maintainers)

Commits related to this issue

Most upvoted comments

@JouperCoding I have solved this by typing @ separately using following code: _driver.FindElement(By.Id("EmailAddress")).SendKeys(Keys.Control + Keys.Alt + "2");

I have the same issue with Hungarian keyboard and for example @ sign, which is AltGr + V at us. Is this planned to be fixed soon? Thank you.

I think this might be related to the issue I have with swedish keyboard. Any character that requires the AltGr key fails in version 3.5.1 but works in 3.4.0.

For example: SendKeys(“@”) will simply put a “2” into the browser. 2 is the character that Swedish keyboards produces for the same key as @ without AltGR. (AltGr is the same as CTRL+ALT).

The same code works just fine with US keyboard set in windows.

I have compiled the source from git and that version fails in the same way as well. I did a possibly very dirty fix in InputManager.cpp -> AddKeyboardInput that fixes my problem. I also tested the issue described by @mseele by adding a German keyboard in windows and that issue was solved as well by the same fix. If anyone wants to look at the change I did in InputManager.cpp you can find it here:

https://github.com/emilnilsson/selenium/commit/3af1cd29e596f9a8744efc585a9ca447388f6588#diff-0df19247e3c1534cab480fec1085dc6e

@devolution2409 Quite sure. It was fixed in 3.9.0.2, as clearly noted in the IE driver CHANGELOG. This means it was publicly available in 3.10.0.0.

Oh! Sorry, we misunderstood your intention 😃 Yes, it seems to be a legit but in IE driver, it types “ßS” instead of “\S”