code: protected String getBasePathSelector() {
          // TODO use disabled
          // TODO verify what need to be equal OR contains
          List<String> selector = new ArrayList<>();
          CollectionUtils.addIgnoreNull(selector, getBasePath());
  
          if (!WebDriverConfig.isIE()) {
              if (hasStyle()) {
                  selector.add(applyTemplate("style", getStyle()));
              }
              // TODO make specific for WebLocator
              if (isVisibility()) {
  //               TODO selector.append(" and count(ancestor-or-self::*[contains(replace(@style, '\s*:\s*', ':'), 'display:none')]) = 0");
                  CollectionUtils.addIgnoreNull(selector, applyTemplate("visibility", isVisibility()));
              }
          }
  
          return selector.isEmpty() ? "" : String.join(" and ", selector);
      }
docs: Containing baseCls, class, name and style
  
  @return baseSelector