## 🚀 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()`. 

private static CommandExecutor createTracedExecutorWithTracedHttpClient(URL remoteAddress) {
    Tracer tracer = OpenTelemetryTracer.getInstance();
    CommandExecutor executor = new HttpCommandExecutor(
      Collections.emptyMap(),
      ClientConfig.defaultConfig().baseUrl(remoteAddress),
      new TracedHttpClient.Factory(tracer, HttpClient.Factory.createDefault()));
    return new TracedCommandExecutor(executor, tracer);
  }
  public RemoteWebDriver(CommandExecutor executor, Capabilities capabilities) {
    this.executor = Require.nonNull("Command executor", executor);
    capabilities = init(capabilities);
    if (executor instanceof NeedsLocalLogs) {
      ((NeedsLocalLogs) executor).setLocalLogs(localLogs);
    }
    try {
      startSession(capabilities);
    } catch (RuntimeException e) {
      try {
        quit();
      } catch (Exception ignored) {
        
      }
      throw e;
    }
  }
  @Beta
  public static RemoteWebDriverBuilder builder() {
    return new RemoteWebDriverBuilder();
  }
  private Capabilities init(Capabilities capabilities) {