## 🐛 Bug Report

The selection (position) doesn't change.


## To Reproduce

Detailed steps to reproduce the behavior:

```
editor.sendKeys("bfmtv.frest");
for (byte j = 0; j < 3; j++) 
	editor.sendKeys(Keys.LEFT);
editor.sendKeys(" ");
```


## Expected behavior

The cursor should move left by 2, but doesn't. The next character typed is positioned as if these left keys hadn't been pressed at all. Result: 
"bfmtv.frest "
instead of 
"bfmtv.fr est"

## Environment

OS: Linux<!-- Windows 10? OSX? -->
Browser: Chrome<!-- Chrome? Safari?  -->
Browser version: 83<!-- e.g.: 70.0.3538.110 -->
Browser Driver version: 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103)

<!-- e.g.: ChromeDriver 2.43, GeckoDriver 0.23 -->
Language Bindings version: Java 3.13.0<!-- e.g.: Java 3.141.0 --> 

## Work-around
I used Quill's .updateContents(...) instead to send an event simulating what's happening in real user session.
private Actions getBuilder(WebDriver driver) {
    return new Actions(driver);
  }
  @Test
  public void testBasicKeyboardInput() {
    driver.get(appServer.whereIs("single_text_input.html"));
    WebElement input = driver.findElement(By.id("textInput"));
    Action sendLowercase = getBuilder(driver).sendKeys(input, "abc def").build();
    sendLowercase.perform();
    shortWait.until(ExpectedConditions.attributeToBe(input, "value", "abc def"));
  }
  @Test
  @NotYetImplemented(SAFARI)
  public void testSendingKeyDownOnly() {
    driver.get(appServer.whereIs("key_logger.html"));
    WebElement keysEventInput = driver.findElement(By.id("theworks"));
    Action pressShift = getBuilder(driver).keyDown(keysEventInput, Keys.SHIFT).build();
    pressShift.perform();
    WebElement keyLoggingElement = driver.findElement(By.id("result"));
    String logText = keyLoggingElement.getText();
    Action releaseShift = getBuilder(driver).keyUp(keysEventInput, Keys.SHIFT).build();