## 🚀 Feature Proposal

I suggest
1. either to add method `getId()` to interface `WebElement`, or
2. to create interface like `HasId` or `HasIdentity` and make `RemoteWebElement` implement it. 

## Motivation

People often cast `WebElement` to `RemoteWebElement` just to call method `getId()`. 
De-facto all implementations of `WebElement` have method `getId()`. 
For me, it's a problem because `RemoteWebElement` is a class, not interface, and therefore I cannot create a proxy object for it in Selenide. I need some interface with method `getId()`. 

return null;
      }
      
      
      Object value = getElementConverter().apply(response.getValue());
      response.setValue(value);
    } catch (Throwable e) {
      log(sessionId, command.getName(), command, When.EXCEPTION);
      WebDriverException toThrow;
      if (command.getName().equals(DriverCommand.NEW_SESSION)) {
        if (e instanceof SessionNotCreatedException) {
          toThrow = (WebDriverException) e;
        } else {
          toThrow = new SessionNotCreatedException(
            "Possible causes are invalid address of the remote server or browser start-up failure.", e);
        }
      } else if (e instanceof WebDriverException) {
        toThrow = (WebDriverException) e;
      } else {
        toThrow = new UnreachableBrowserException(
          "Error communicating with the remote browser. It may have died.", e);
      }
      populateWebDriverException(toThrow);
      toThrow.addInfo("Command", command.toString());
      throw toThrow;
    } finally {
      Thread.currentThread().setName(currentName);
    }
    try {
      errorHandler.throwIfResponseFailed(response, System.currentTimeMillis() - start);