code: @Override
      public By convertToSelector(String identity) {
          waitAjaxIsFinished();
          By selector = new By.ByCssSelector(identity);
          if (identity.matches("^[a-zA-Z][\\w_-]*$")) {
              selector = new By.ById(identity);
          } else if (identity.startsWith("/") || identity.startsWith("./")) {
              selector = new By.ByXPath(identity);
          }
          return selector;
      }
docs: ID tokens must begin with a letter ([A-Za-z])
  and may be followed by any number of letters,
  digits ([0-9]), hyphens ("-"), underscores ("_"),
  colons (":"), and periods (".").
  As a purely practical matter, you may want to avoid certain characters.
  Periods, colons and '#' have special meaning in CSS selectors.