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

public class RemoteWebDriver implements WebDriver, JavascriptExecutor, HasInputDevices,
                                        HasCapabilities, Interactive, TakesScreenshot,
                                        HasVirtualAuthenticator, PrintsPage {
  
  private static final Logger logger = Logger.getLogger(RemoteWebDriver.class.getName());
  private Level level = Level.FINE;
  private Map<Class<? extends By>, Mechanism> remotableBys = new HashMap<>();
  
  
  
  {
    remotableBys.put(By.cssSelector("a").getClass(), Mechanism.REMOTE);
    remotableBys.put(By.linkText("a").getClass(), Mechanism.REMOTE);
    remotableBys.put(By.partialLinkText("a").getClass(), Mechanism.REMOTE);
    remotableBys.put(By.tagName("a").getClass(), Mechanism.REMOTE);
    remotableBys.put(By.xpath("a").getClass(), Mechanism.REMOTE);
  }